git pull や git merge を忘れたとき †
例えば,ローカルの master が origin/master より数コミット遅れているのにも関わらず,ローカルで変更をしてしまったとき.
ローカルの master でのコミットはまだ行っていないものとする.
- git stash で現在のローカルの情報を保存
git stash
- mergeまたはpull
git fetch origin #既に最新情報の場合 fetch は不要
git merge origin/master
または
git pull origin master
- showでstashとの差分を確認する
showでstashした時と最新のorigin/masterを反映させた現在の状態との差分を確認する.
git show -p
- stash pop(stash apply)でstashを現在のmasterに適用する
git stash pop
または
git stash apply [index]
git stash applyのインデックスはgit logで確認する.
- 競合の問題などを解決後, add, commit
git add .
git commit -m "commit massage"
- 競合後修正してstashが削除されていない場合はstashを削除
git stash drop