1. git stash pop で conflict したとき
1.0 conflistの例
1 2 3 4 5 6 |
$ git stash pop Auto-merging inc/foo.h CONFLICT (content): Merge conflict in inc/foo.h Auto-merging src/bar.c CONFLICT (content): Merge conflict in src/bar.c The stash entry is kept in case you need it again. |
1.1. stash をなかったことにする
(1) workも含めて、全てを pop 以前に戻す。
1 |
$ git reset HEAD --hard |
(2) stash を 削除する。
1 |
$ git stash drop # 最新のstashを削除 |
1 |
$ git stash drop stash@{N} # N番目のstashを削除 |
1.2. 競合を解決する
(1) 手作業で競合を解決する
(2) unstageする(gitの内部状態を戻す)
1 |
$ git reset HEAD <file> |
(3) 適宜、add や commit を行う
2. 部分的な退避 (stash)
1 |
$ git stash save -p |
-p オプションの実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
diff --git a/foo.c b/foo.c index f2289bf..a2c60c2 100644 --- a/foo.c +++ b/foo.c @@ -13,7 +13,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include "FOO.h" +#include "foo.h" #include "fizz.h" #include "buzz.h" (1/1) Stash this hunk [y,n,q,a,d,e,?]? |
3. 比較
1 |
$ git diff HEAD..stash # 最新のstashと比較 |
1 |
$ git diff HEAD..stash@{N} # N番目のstashと比較 |