- 1 名前:デフォルトの名無しさん [2007/10/26(金) 02:15:00 ]
- バージョン管理システムについて語りましょう。
関連スレ CVS 1.3 [UNIX板] pc11.2ch.net/test/read.cgi/unix/1093611448/ CVS導入スレ〜 Rev.3 [プログラム板] pc11.2ch.net/test/read.cgi/tech/1113141518/ Subversion r7 [プログラム板] pc11.2ch.net/test/read.cgi/tech/1180858500/
- 103 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 05:39:46 ]
- >>97
確かにメール <--> パッチ <--> リポジトリ に便利なコマンドが揃ってて なるほどなーって感じだけど、汎用性(?)がないってことは無いと思う。 うーん、やっぱMercurial気にはなるんだけど、どうも突撃できない。。。 Gitの前はsvk使ってたんだけど、Gitでこりゃ新しい、と思ったのは、 Indexっていう、ワーキングコピーとリポジトリデータベースの中間みたいなのが あって、コミットする時にはIndexにいったん格納してからリポジトリに送る、 っていう方式が斬新だなぁ、と思った。 俺の使い方としては、編集して納得したファイルはその時点でどんどんIndexに 追加してしまっておく。Index追加済みのものは通常のdiffコマンドで対象外に なるので(Index追加済みのものとリポジトリの間の差分を見る場合はdiffに オプションを付ける)続けて編集し始めたファイルの差分だけまたdiffコマンドで 見ることが出来る。 だからIndexに追加したファイルは仮にコミットしたみたいな感じかな。 これをやると、変更したつもりのないファイルを間違えて変えてたり、 Indexに追加した後でさらに何か変更を加えてたりすると、気づくことになる。 あまりこれやってるとなかなかコミットしなくなるけどw機能的にまとまった 段階でコミットを作ったほうがいいように思う人とか、きれいにdiffを確認する 人なんかはいいと思う。 あとIndexに差分を追加した状態で他のブランチに切り替えてコミットしたりも 出来る。
- 104 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 05:40:56 ]
- 過去のコミットを修正できちゃったりするのも新しいなぁ、と思った。
そんなことしていいのかよw とか最初思ったけど、アリだと思うようになった。 ボスが来たモードみたいなのがあって、作業途中の中途半端な状態で急に 他の修正をやらないといけなくなった時に、今の状態をテンポラリ領域みたいな 所に保存しておいてHEADに戻り、急な修正をやっつけ終わってコミットしたら、 以前のやりかけの状態を復元(急な修正の上に)して続きをやる、とか。 例えばノリノリで新機能を追加してる途中で以前のバグを発見したとしたら、 後でじゃなくて今すぐ修正したい(忘れそう)、、、けど新機能とバグ修正の コミットは分けるべき。。。そんな時に今の状態をいったん保存して元に戻って、 バグ修正をコミットしたら、その上に保存した状態を復元、という感じで使える。 rebaseってのがあって、ある開発版ブランチをベースにして俺コミットで 突き進んでいたとして、ある日その開発版ブランチが安定版ブランチに 統合されて成長が止まってしまったとしたら、俺としてはもう伸びることのない 開発版ブランチを追っかけていてもしょうがないので、いったん俺コミットを 全て無かったことにして、根っこを安定版ブランチの先頭に引越ししてから、 俺コミットを全て適用しなおす、ということが出来る。これ便利。 あとは、、、cherry-pickってのがあって、適当なとあるコミットを指定して 今の状態に適用してみたりできる。 逆に問題のあるコミットを特定したら、履歴からそのコミットだけ除外して みたり。 分散型で超気軽にブランチが作れるから、気軽にコミットしたり取り消したりとか、 やりたい放題なのが気持ちいいかなぁ。 以上、Gitのチラ裏でした。
|

|