2012年8月15日水曜日

Gitのお勉強中

今までは現場でSubversionを使っていたのだけど、正直言うとあまりきちんと理解できていない。

このままではイカンと思って勉強しようかと思ったのだが、ふと
「今からSubversionの勉強するより、Gitの勉強したほうが今風じゃない? ナウじゃない?」
と思い立ち、Gitの勉強を始めてみた。

いずれはGitHubをバリバリ使いこなせるようになりたいっす。

とりあえず今のところGitの機能で便利だなーと思ったのは、ステージという概念。

SVNだと、あるファイルを編集しリポジトリにコミットする時は
svn commit -m 'add hoge' hoge.txt
とするのだけど、
Gitの場合は
git add hoge.txt
git commit
みたいなやり方ができる。

なんで、すでにバージョン管理しているファイルをコミットするのにaddが出てくるのかというと、hoge.txtをステージにアップするためだ。

ステージというのは、作業ツリーとリポジトリの中間みたいなところで、コミットする前にそこに一度アップすることができる。
※直接コミットももちろんできる。

ステージが便利だなーと思った理由は次の2点。
1.複数のファイルをまとめてコミットしやすい
2.ちょっとしたブランチのように使える

まず、1。
SVNで複数のファイルをファイル名を指定してコミットしたい場合、
svn commit -m 'ver1.2 release' hoge_1.txt hoge_2.txt hoge_3.txt ・・・
などと、ダラダラとファイル名を追記していく必要がある。
このやり方だと、どうしてもミスが多くなる。
ファイルごとにコミットすると、無駄にリビジョン番号が増えていくし、ログも追いにくい。
その点、Gitのステージを使えば、コミットしたいファイルをまずはステージにaddにして、あとで一度だけ
git commit -m 'ver1.2 release'
とすればバッチリOK!!
もちろん、間違えてステージにaddしてしまった場合は、簡単に元に戻せる。

次に、2。
hoge.txtを編集し、
svn add hoge.txt
をやってステージにアップする。
その後、もう一度hoge.txtを編集して保存すると、
hoge.txtのバージョンとしては、
・リポジトリにあるhoge.txt
・ステージにあるhoge.txt
・作業ツリーにあるhoge.txt
と3種類存在させることができる。
ステージのバージョンと作業ツリーのバージョンが違う状態というのはあまり健全ではないだろうから、別々に管理したいときはブランチを切るのが一番だろうけど、リリース直前にちょっとソースを弄りたくなった時とかにはかなり重宝しそう。


まだ勉強を初めて間もないので分からないことだらけだけど、今のところはなかなか使い勝手もよくて楽しそう。

引き続きお勉強をして、またブログに書いていきますねー。

0 件のコメント:

コメントを投稿