さきに参考URL
dackdive.hateblo.jp d.hatena.ne.jp
こんな流れで作業していてはまりました。
あるファイルを編集中に障害の調査をしなきゃならん事態が発生
↓
編集中のファイルをstashして同じブランチで障害の調査を開始*1
↓
デバッグコードを埋め込んだり、ついでに見つかったバグを修正したりでstashした時に修正中のファイル以外を修正
↓
さて、編集したファイルは被ってないからstash popするべー*2
↓
あら、コンフリクトしてますな・・・
という状況です。
"foo" "bar" "baz"の3ファイルがリポジトリにあったとすると fooとbarは手元のファイルを残して"baz"だけstashしてたものをとり込むという操作をやりたいのです。
こんな時はこんな感じで、必要なファイルだけをstashからcheckoutして上書きできます。
> git checkout --theirs stash@{0} baz
この後、bazはgit stashした時のファイルに戻って、さらにgit addされた状態になってます。 stashの方も残ったままなので、不要であれば
> git stash drop
して消しておきましょう。
stashしたものだからpop時のオプションでなんとかなるだろうと思って調べてたんですが、どうやらそういうわけではないようです。 しかし、スタックに積んでおいて全部出さずにちょっとだけ持っていくとかお行儀悪いなwww*3