Fork me on GitHub

ソース管理

ソース管理、またはバージョン管理は、ソフトウェアのコードを記述したファイルを変更した履歴を管理しています。

なぜソース管理が必要?

バージョン管理をすることで、これまで作り上げたものを台無しにする心配をせずにコードを編集することができるようになります。コードの変更を無かったことにしたい場合も、前のバージョンのコードに巻き戻すことができます。

また、ソース管理はチームでの開発を簡単に行えるようになります。ある開発者が他の開発者のコードをdiffによって1行づつ見比べることができるので、メインのコードブランチにマージすることができます。

バージョン管理は開発期間、規模、言語に関わらず必須です。すべてのプロジェクトで直ちにGitやMercurialの様なバージョン管理システムを導入するべきです。

開発中のソース管理

開発段階において、開発中のコードを取り出すのがソース管理システムの用途です。

ソース管理システムからコードを取り出すためのサーバを利用する

デプロイにはソースコードをパッケージングし、プロダクション環境には一切ソース管理システムを利用しないというケースもあります。しかし、初学者にとってはシステムのインストールパッケージにPythonコードをパッケージングする方法を学び始めるよりも、小規模のデプロイにはソースコードを取り出して行うほうが簡単でしょう。

ソース管理プロジェクト

この2~30年の間様々なソース管理システムが作られてきました。過去にはプロプライエタリなソース管理ソフトウェアが大規模なプロジェクトチームのために作られたり、特定のプロジェクトに対応してきました。しかし、今日では最も巨大で複雑なプロジェクトが実際にオープンソースのバージョン管理システムを利用しています。今日のPythonプロジェクトでオープンソースのバージョン管理システムを使わない理由はありません。主な選択肢は2つです。

  • Gitはフリーでオープンソースのバージョン管理システムです。
  • MercurialはGitに似た、フリーでオープンなバージョン管理システムです。

ソース管理のホスティング

GitやMercurialはあなたのサーバにインストールして利用することができますが、ソース管理のホスティングサービスを使うほうが、扱いやすく経済的です。必要に応じて利用するサービスは変更できます。お勧めのホスティングサービスは2つです。

  • GitHubは、現時点で最も利用されているGitホスティングサービスです。
  • BitBucketはGitとMercurialに対応し、5人までのチームであれば公開・非公開のレポジトリを無料でホスティングすることができます。

一般的なソース管理のリソース

  • A visual guide to version controlは、なぜバージョン管理が必要なのかということが実践的なバージョン管理とともに解説されています。
  • About version controlでは、分散型バージョン管理システムの基礎について解説されています。

Gitのリソース

  • Pro Gitはバージョン管理システムを利用に関して、すべてを網羅したオープンな書籍です。
  • A practical git introductionはタイトル通り、実践的なGitガイドです。Gitの使用を加速する豊富なコードとともに詳細な解説が掲載されています。
  • git readyは初心者向けから中級者、上級者向けに分けれられたGitの利用方法について解説しているブログです。
  • git-flowは、小規模なチームに最適なブランチモデルについて解説しています。
  • GitHub Flowはgit-flowをベースに構築され、その問題点と解決方法を紹介しています。
  • Git Workflows That Workは、チームでGitを使う際に参考となる、ワークフローのダイアグラムを紹介しています。
  • "Our Git Workflow"はBraintreeがGitを使いソースコードをマージするためのノウハウを紹介しています。

ソース管理を学ぶためのチェックリスト

バージョン管理システムを選択しましょう。Web上のリソース、チュートリアルの数、様々なレベルのユーザ層の数からすると、Gitがお勧めです。

変更のコミット、変更の取り消し、履歴から変更箇所を探す方法など、基本的な使い方を学びましょう。

あなたのソースコードが中央のレポジトリにパックアップされているかを確認して下さい。中央レポジトリは、ローカルの開発バージョンが壊れた場合だけでなく、開発段階でも重要なものです。

3つの方法であなたの開発プロセスにソース管理を組み込みましょう。まずはデプロイ時にバージョン管理システムからソースコードを取り出します。次にコードが変更されたらデプロイが起こるようにwebhookやレポジトリのポーリングをしてみます。最後に開発が間違ったら以前のバージョンに巻き戻すことができることを確認しましょう。

あなたのソースコードはバージョン管理されました。次は?

自分が作ったアプリケーションをデプロイするには?

自分のアプリケーションを利用しているユーザについて知りたい。

自分のアプリケーションで外部APIを使うには?


Interested in a complete Full Stack Python book with detailed tutorials and example code? Sign up here and you'll get an alert email if a book is created. No other emails will be sent other than sign up confirmation.