タグ

ブックマーク / unpush.hatenadiary.org (2)

  • git-rerereのメモ - unpushの日記

    git-rerereってなんかレレレのおじさんみたいですが(Reuse recorded resolution of conflicted merges だそうな)、同じような衝突を何度も起こす状況で使うととっても便利なようで、調べつつ、メモ。 Linusが言っている「無駄なマージコミットやめて」を実現するには、rebaseがあればいいよね、と思ってたんだけど、既に公開しているようなブランチとなると、rebaseするわけにもいきません。 でも途中でちょっとだけ線とマージしてテストしてみたくなったり、マージした後でやり直して再度マージしてみたくなったりも、しがちです。 そうなるとキツいのが、分かりきってるようなコンフリクトの解消。同じようなマージを繰り返すと、同じように衝突してるところを何度も手で直す作業を繰り返しやるハメになって、泣きそうになります。かといってマージを限界まで我慢して一発

    git-rerereのメモ - unpushの日記
    poppen
    poppen 2012/01/16
  • マージ後のreset HEAD^は危険だった - unpushの日記

    直前のマージを取り消す場合は、 × git reset --hard HEAD^ではなく、 ○ git reset --hard ORIG_HEADとしないと危ない、という話。 「マージ後にgit reset --hard HEAD^で取り消し」は去年の日記でもけっこう使ってるけど、たまたま上手くいっていたからよかったが、ORIG_HEADが正しい指定方法だった。場合によってはちょっと危ない。 マージコミットは複数のparentが記録されるが、mergeコマンドによって先端を移動するブランチ(=カレントのブランチ)を1番目の親としてマージコミットが作成される。 例えば topicランチで git merge master とした場合に作成されるコミットオブジェクトは、1番目のparentはtopicランチのハッシュ値で、2番目はmasterブランチのハッシュ値となる。 なので、その後t

    マージ後のreset HEAD^は危険だった - unpushの日記
    poppen
    poppen 2011/08/14
  • 1