yhara.jp

Recent Posts
Edit

git stash popがconflictしたとき、強制的にpopさせる方法

2017-12-31
Tech

git stashは便利なコマンドだけど、stashして、stashして、編集して、コミットして、popしてpopして…みたいなことをしてると、stashした時点とコードが変わっててpopできない、みたいなことがたまにある。

こういうとき、git stashのマニュアルを見ると、「手でconflictを解決してからstash popすること」と書いてある。けど、時にはとりあえずなんでもいいから無理やりpopしてほしい、という場合もある。

このようなときは以下の手順でgit stash pop --force的なことができる。

# 手元の変更をいったんcommitする(このコミットはあとで破棄するのでログは適当でよい)
$ git commit -a -m 'tmp' 
# stash popする。未コミットの変更がなければ、conflictする場合でもstash popできる
$ git stash pop
# both modifiedになってるファイルをとりあえずaddする
$ git add -a
# 仮commitした内容をもとにもどす
$ git reset HEAD^

More posts