Giyとはソースコードの変更履歴を記録する分散型バージョン管理システムです。
以前はSVNなどが利用されていましたが、現在はGitが主流となってています。
GITとSVNの違いは?
従来の構成管理は中央集権型でした。
サーバーにある構成管理されたソースツリーを開発者の環境へ持ってきます。開発者はローカル環境で試行錯誤しながら、開発を行い、その結果を再びサーバーへコミットします。
これは、[開発者の手元にソースコードがある期間]に問題があります。
この期間ではローカルのファイル管理に任され、開発者が試行錯誤した結果が失われることがありました。
Gitはサーバーで構成管理していたソースコードを取得するところまでは同じです。
構成管理から外れるのではなく、開発者のPCに[引き継がれます]。開発者PCのGitによって構成管理されます。このように構成管理の主体がサーバーだけでなく、独立して開発者のPCでも行われるため、分散型の構成管理となります。
開発者側で管理されている間はサーバーと同期せずとも、サーバーと独立して開発者のPCの中でしっかり構成管理できていますので、修正にしろ、新機能の追加にしろ、開発者は存分にソースコードを改変できます。
時代に逆行している中、SVNの利点はありますでしょうか?
Subversionは仕組みがシンプル
Subversionは集中型でリポジトリがひとつです。Gitはリモートとローカルリポジトリの両方を意識しなければならず、Subversionよりも操作が複雑です。
リビジョン番号がわかりやすい
commitするとcommitを識別するためのリビジョン番号(ID)が振られます。Subversionは連番で分かりやすいですが、Gitでは分散リポジトリのためIDにハッシュ値が使われ分かり辛いです。
開発環境のネットワーク
subversionをGitに置き換えようと思ったいきさつも、現在開発場所と試験場所とがネットワークで結ばれていないとか、開発チーム(組織)が複数あってリポジトリを共有していないといった課題を解決するためです。
同じ共有リポジトリを常に利用できる環境でチーム開発をしている開発者にとっては一段手間が増えるだけでメリットを感じることが少ないです。
Gitとは
プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。
- 分散型: 自分のマシンにリポジトリ(開発過程が保存されるデータベース)を持っている
- バージョン管理システム:(複数人で)開発過程を記録しながら開発を行なうためのシステム
リモートリポジトリ
ローカルリポジトリ
ブランチ
Gitには開発の本流から分岐し,本流の開発を邪魔することなく作業を続ける機能がある(ブランチ機能)
独習Git
GIT使い方入門
GIT実践入門
まとめ
Gitはまだ奥深いですので、分かりしだい更新します。