Tool
2013年5月30日 (木) 掲載
Gitとは [Git]
Gitはファイルのバージョン管理システムです。文書ファイルのバージョンを管理するために、たとえばファイル名に日付を入れるなどの方法を用いることがありますが、バージョンを重ねるごとにファイル数が増えるなど、あまり効率的とは言えません。Gitを使えばこのようなバージョン管理はすべて自動化されます。変更日時や変更者、変更理由も同時に管理されるため作業の記録としても活用することができます。
GitはSubversion(SVN)などと同じ、ファイルのバージョン管理システムで、次のような特徴を持っています。
- リポジトリが分散型である。
リポジトリとは管理するファイルの情報を記録するデータベースです。
SVNのリポジトリは「中央集権型」であり、サーバに設置された一つのリポジトリが、利用者全員がアクセスします。 これに対してGitでは、リポジトリは各自のローカルPC上に置かれます。
一つのプロジェクトのリポジトリのコピーが、作業者各自のローカルPCにいくつも存在することになるため、サーバの負荷が少なく、またバックアップに関するリスクも低減します。 - ファイルのコミットとサーバへの公開(プッシュ)は別々に行う。
リポジトリがローカルにあるため、そのままでは他の人とファイルを共有することができません。共有するにはネット上のGitサーバを用意し、そこにローカルでの変更を送信します。
この操作を「プッシュ」といいます。(反対にサーバの情報をローカルに反映するには「プル」または「フェッチ」を行います。)
ローカルリポジトリで何回かコミットを繰り返し、作業の節目でまとめてサーバへプッシュする、というような形で運用します。 - ブランチが容易
サーバへプッシュを行うとき他の人がすでに同じファイルを変更していると変更の衝突が起きてしまいます。これをできるだけ避けるためには作業用のブランチ(分岐)を作成します。ローカルでの作業は自分専用の作業ブランチで行い、一通りの作業が終わった時点で本流へマージするようにすれば、変更の衝突を最小にすることができます。