緊急対応

ええと、master なブランチで微妙な不具合が出てるんだけどテンポラリで対応できね? って言われて branch 作成して仮対処な確認して頂いておりました。

  o    bugfix1
 /
o--    master

その後、実はこんな不具合が、と言われて branch して対処盛り込み。

  o    bugfix1
 /
o--    master
 \
  o    bugfix2

で、確認は無問題らしいので master に merge を。

  o    bugfix1
 /
o---o  master
 \ /
  o    bugfix2

で、上の bugfix1 側にも bugfix2 のソレを盛り込んでみて欲しい、と言われて

$ git checkout bugfix1
$ git merge bugfix2 --no-ff

したのですが、よくよく考えてみるに bugfix1 な HEAD はすぐに取り出せるようにしておきたいな、という事でこれから対処してみます。こんな状態になってるのですが

    o---o  bugfix1
   /   /
  /   o    bugfix2
 /   / \ 
o---o---o  master

一旦元に戻して

    o      bugfix1
   / 
  /   o    bugfix2
 /   / \ 
o---o---o  master

さらに branch して merge したい。

      o---o  bugfix3
     /   /
    o   /    bugfix1
   /   /
  /   o      bugfix2
 /   / \ 
o---o---o    master

という事で以下なのかな

  • git reset --hard で bugfix1 ブランチを巻戻し
  • bugfix1 から branch 作成
  • bugfix2 と merge

な方向で。

$ git checkout bugfix1
$ git reset --hard HEAD~2
$ git checkout -b bugfix3
$ git merge bugfix2 --no-ff

みたいなカンジなのかどうか。

巻戻しを間違えた

本当は

$ git reset --hard HEAD~1

でした。すばらなことに以下でやり直せる模様。

$ git reset --hard ORIG_HEAD

やり直せる、というのは凄いことだなと。

つうか

この程度までになってくると後天性記憶不全な脳にはなかなかツラいですね。
ぢつはその後さらに不具合を指摘されて意味不明なことになっちゃってます。

  • 上の bugfix3 に修正盛り込み
  • おそらく bugfix2 に merge しなきゃ、なはず
  • そしてそれを master に merge するのかな

わははは的。