git add -p私は完全に大好きですgit stashが、次の問題が発生することがあります。これは、次の一連のコマンドによって再現されます。
git add -p my_file:次に、gitが提案する分割が私に適していないため、(を使用して)手動でハンクを編集しますegit stash --keep-index:それから私はいくつかのテストを行います、そしてテストが合格した場合私はコミットしませんgit stash pop:問題が発生しました:ファイルmy_fileは競合していると見なされ、gitは編集したハンクを完全に混乱させたため、ファイルを編集し、不要なマージマークを削除して、実行してから実行する必要がありgit add my_fileますgit reset HEAD
これはハンクを手動で編集するときにのみ発生するため、私は困惑しています。これがどのように違いを生むのか、私にはわかりません。
問題を再現するには:
touch newfilegit add newfilegit commit -m 'newfile'- ファイルに2行追加します
git add -p newfile- ハンクを編集し(
e)、ハンクの行の1つを削除してから、git add(q)を終了します。 git stash --keep-indexgit stash pop
これで、ファイルnewfileはマージされていない状態になります。繰り返しになりますが、この問題は手動で編集されたハンクでのみ発生することに注意してください。ハンクを手動で編集しなくても、上記のコマンドに問題はありません。
ちなみに、ファイルの前の状態は第3段階(git show :3:newfile)にあり、前に段階化されたバージョンは第2段階(git show :2:newfile)にあります。だから、私はいくつかのgit black magicによって、このインデックスに2番目のステージを入れ、作業リポジトリに3番目のステージを入れることができました...しかし、それを行う方法がわからないので、手作業で行います。:-(