nDiki : 2010年11月19日

2010年11月19日 (金)

Git でローカルリポジトリの連続するコミットをまとめてから push したい時

分散型バージョン管理システムである Git では SubversionCVSVisual SourceSafe などと違って気軽にローカルリポジトリにコミットしていって、最終的に形になったところで公開/共用リポジトリに push するといったことができる。

こまめにローカルリポジトリにコミットしながら作業していくことで、いつでも後戻りしてやり直したり変更点を確認したりできる。ただちょっとした変更の連続によるたくさんのコミットを公開/共用リポジトリにそのまま push したくない。そういう場合は意味のある単位にコミットをまとめてから push したい。

Git では git-rebase でこれができる。

最新のコミット(HEAD)と1つ前のコミット(HEAD^ / HEAD~1)をひとつにまとめて HEAD~2 の次のコミットにしたい時

 A---B---C---D---E
         |   |   |
         |   |   HEAD
         |   HEAD^
         HEAD~2

最初に git rebase する。

  git rebase -i HEAD~2

すると

  pick <HEAD~1のハッシュ> <HEAD~1 のログ>
  pick <HEADのハッシュ> <HEAD のログ>

という行を含む内容でエディタが起動する。HEAD を HEAD~1 にまとめたいので 2番目の pick を squash に書き換えエディタを閉じる。

すぐにまた今度はコミットログ修正のためのエディタが開く。HEAD~1 のコミットログと HEAD のコミットログがあらかじめ含まれているので、それらを編集して2つ分の内容を反映したものに書き換えエディタを閉じる。

これで直近の2つのコミットがまとめられて新しい1つのコミットになる。

 A---B---C---F

ローカルでの試行錯誤をとりまとめて整理されたコミットになったのでここで push する。

  git push

なお squash を使えばできるというヒントは @tokuhirom 氏に教えていただきました。ありがとうございます。

スポンサード リンク

今日のさえずり: ポップしてないコーンが結構ある

naney:5190304729

2010年11月19日

  • 08:35 RT @akb_sanseido: はじめまして。akb三省堂書店です。あとちょっとでアトレ秋葉原1グランドオープンです。これからよろしくお願いします。
  • 08:38 akb三省堂書店 @akb_sanseido という戦略的な名前に惚れた。
  • 09:44 間違えて神田駅で一度下車。
  • 09:49 アトレ秋葉原1間もなく。 http://movapic.com/...
  • 09:50 なんかオープニングの挨拶もしてた。
  • 10:12 Google Apps のサービス追加に Google Buzz 無いの……。
  • 12:25 おろしチキン竜田弁当 480円。 (@ ほっともっと浅草橋店) http://4sq.com/cfX4bn
  • 12:34 将棋か。小学生の頃は父親と良くやっていたんだけれそれ以降はぼちぼちになって、今ではもうほとんど忘れてるなあ。高美濃囲い好きだった記憶ぐらい。
  • 15:33 オフィスの給湯器の温度設定が45℃とか。熱いです。熱湯コマーシャルです。
  • 16:48 @as_tone どの棚?
  • 17:14 グレートバリューのポップコーンはポップしてないコーンが結構ある。ガリガリ。
  • 18:31 昨日 Git でやりたかったことわかった。git rebase -i HEAD~2 し、開いたエディタで2番目のコミットを squash して閉じ、次に開いたエディタでログ書き直して閉じる。コミットがまとめられところで git push。
  • 18:33 @tokuhirom ありがとうございます。昨日教えてもらった squash で Git でしたいことできました。
  • 19:07 日曜日停電なのでオフィスのサーバ落とした。年に1回のこの静けさがたまらない。
  • 19:35 せっかくなのでアトレ秋葉原1に来てみた。
  • 19:37 三省堂書店狭い。
  • 19:40 ユニクロ狭い。ハンズ狭い。
  • 19:45 4F ホームの見えるカフェ。
  • 19:50 あれえアキハバラデパートってこんなに狭かったっけ?
  • 19:54 アトレ秋葉原1はやっぱりアトレだった。アトレってどこ行っても同じようなテナントが入ってて、いつもと違う街に行く楽しさをかなり奪ってるよね。
  • 20:00 RT @kasuusagi: 友達がスカートの長さで生徒指導に引っ掛かったらしく反省文を書かされてたのですが、反抗心に燃えるパンキッシュなマイフレンドは文末に縦読みを入れて提出なさってた http://twitpic.com/383udv
  • 20:10 ああそうか、確かにアトレ秋葉原1に花屋ができたのは年に1回か2回助かるな。
  • 21:02 ジャーマンポテト方面を目指した何かができたので食べてる。
  • 21:14 ジャガイモ2個、タマネギ1個、ソーセージ1袋は多すぎた。
  • 22:00 腰リール人口って今何万人?
  • 23:06 nDiki のファンページ作ってみました。 http://bit.ly/b9atkF http://fb.me/w779HSLG
  • 23:08 ストレートに「nDiki」だと大文字の使い方が悪いのかファンページが作れなかったので、Naney's nDiki としてみました。
  • 23:34 何もみつからなかったよ・・・。ごめんぉ。 http://bit.ly/doNgya
[ 11月19日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.059409s / load averages: 0.95, 0.62, 0.68
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker