【プログラミング学習】git pullを取り消す方法
こんにちは!CODE CLUB965のKです!
今回は、git pullしてしまったが取り消したい!なんて時の取り消し方法を書こうと思います。
git pullの取り消し方法
git pull したブランチが、現在のローカルブランチにマージされた場合
git pull したブランチが、現在のローカルブランチにマージされた場合の対処法について書きます。
git pull の取り消しは、 プルしたリモートブランチのマージを取り消せばよいので、マージする前の位置にHEAD を戻してあげます。
HEADの移動履歴は、「git reflog」で見ることができます。
// HEAD の移動履歴を表示
$ git reflog
// 出力
6fe50a3 (origin/master, master) HEAD@{0}: merge: merging origin/master to master
0024f10 (origin/×××, ×××) HEAD@{1}: checkout: moving ○○○ to ×××
418c0ce (origin/○○○, ○○○) HEAD@{2}: commit: fix the form bug.
...
上の例のような感じの移動履歴だった場合、マージ前の参照は、HEAD@{1} となります。
なので以下のコマンドを叩いて強制的にHEADを移動します。
git reset --hard HEAD@{1}
「git reset --hard」 は、参照、作業ツリー、インデクスを強制的に戻すコマンドです。
これでgit pullを取り消すことができます。
補足
ちなみに、上記の例とは違い、git pull したブランチが、現在のローカルブランチとコンフリクトした場合の対処法も簡単に書いておきます。
git pullしたがコンフリして、マージが中断状態となっているとします。
その場合、 取り消し方として、
git merge --abort
を叩くことで、merge の中止ができます。
(ちなみのちなみに、git merge --continueしてもOKです。)
最後に
gitは慣れないと中々大変だと思いますが、状況に応じて対処法は必ずあるので焦らず調べて対応していきましょう!
今回もあくまで一例に過ぎないので、よくgitで起きそうなことについて今後も記事にできればと思います。
gitでの取り消しコマンドについては以下の記事にまとめていますので、気になる方は参考にして下さい。
それでは、また!