今までSVNしか触ってきたことのない私ですが、ついにGitでソース管理している仕事に関わることになりました。独学で用語は調べたり本を読んでいたものの、複数人開発で使ってみるとまた違う・・・。やはり実際開発で使ってみるのが一番良いですね。
というわけで、Gitの基本とSVNとの違いを、自分の備忘メモとして残しておきます。
##Gitとは
分散型バージョン管理システムのこと。SVNは集中型バージョン管理システムと呼ばれている。
ローカルリポジトリとリモートリポジトリ
リモートリポジトリ
サーバー上のリポジトリのこと。SVNのリポジトリと同じイメージ。
ローカルリポジトリ
自分のPC内にあるリポジトリのこと。リモートリポジトリをクローンして作る。SVNのチェックアウトに近いイメージ。
コミットとプッシュ
コミット
ローカルリポジトリに変更を反映すること。SVNは直接リモートリポジトリへ変更を反映する。
プッシュ
ローカルリポジトリにリモートリポジトリに変更を反映すること。
SVNではコミットだけだったけど、Gitはコミットしたらプッシュ。
プルとフェッチ
プル
リモートリポジトリから変更をローカルリポジトリに取り込むこと。SVNでいう更新。
フェッチ
リモートリポジトリの最新の状態を取得する。ローカルリポジトリに変更は反映されないので、リモートの最新状態を取得したいときに使う。
ブランチについて
Gitにはtrunkと呼ばれるものはなく、全てブランチと呼ぶ。Gitでmasterブランチと呼ばれているものがSVNのtrunkに相当するものになる。
他にもまだまだ機能はあるけど一旦ここまで。
Git使ってみて感じたこと
リモートリポジトリとローカルリポジトリに分かれている、ということを理解するのがなかなか難しかったです。また、SVNより気軽にブランチを切れたり、プルリクエストでソースレビューも出来たりでSVNより開発効率が上がりそう!な気がしました。Gitをもっと使いこなせるようになりたいなと思ってます。