GitHub入門4
今回はコミットを変更する操作について書いていきます。
git reset 歴史を戻る
fix-aブランチをコミットしたけれどfix-aブランチを切る前に戻りたい。そして新たにfix-bブランチを作成したい。
開発をしているとかならずこのような場面に出くわします。
そんな時に使えるのがgit reset
コマンドです。
まずはログの確認から
現状はfix-aをコミットしたところですね。これを.vimrcをコミットしたところまでさかのぼります。
git reset --hard "戻りたいハッシュ"
これでfix-aをコミットする前に戻れました。
ここでfix-bブランチを作り、README.mdを新たに作成します。
続けてそのままコミットしていまいます。
コミットした時点でのログがこちら
fix-bが新たにコミットされているのが確認できます。
そしてfix-aは確認できない状態ですね。
最終的にはfix-aとfix-bを合わせたいと考えているのでここで一度masterブランチに戻り、fix-aをmasterにマージしたいと思います。
ここでfix-aがコミットされた時の状態に再度戻りたいのでfix-bを作る為に戻した操作と同じようにgit reset --hard
をおこないます。
ただ、先ほどと違って通常のログにはfix-aの履歴が残っていません。そこでgitの操作履歴から復元していきます。
そしてマージします。
続いてfix-bをマージしていきます。
はい、ここでコンフリクトが起こりました。
fix-a, fix-bともに編集していることからどっちが正しいの?ってgit側が聞いてきているわけですね。直してあげましょう。
はい、これであとはaddしてcommitするだけで無事、fix-aとfix-bをマージすることができます。
git reset --hard
を使えばミスの修正など色々なことに応用が利きます。
便利ですね!ということで今回はこのあたりで(*'▽')