我非常喜欢git add -p,git stash但我偶尔会遇到以下问题,通过以下命令序列重现:
git add -p my_file:然后我手动(使用e)编辑一个大块,因为 git 建议的拆分不适合我git stash --keep-index: 然后我做一些测试,如果测试通过了我不提交git stash pop:现在问题出现了:文件my_file现在被认为是冲突的,git已经完全弄乱了我编辑的大块,所以我必须编辑文件,删除无用的合并标记,然后git add my_file运行git reset HEAD
我很困惑,因为这只发生在手动编辑大块时。我不明白这应该有什么不同。
要重现问题:
touch newfilegit add newfilegit commit -m 'newfile'- 在文件中添加两行
git add -p newfile- 编辑大块(
e),删除大块中的一行,然后退出 git add(q) git stash --keep-indexgit stash pop
现在文件newfile处于未合并状态。请再次注意,该问题仅发生在手动编辑的 hunks中。如果不手动编辑任何大块,则上述命令没有任何问题。
顺便提一下,文件的先前状态处于第三阶段(git show :3:newfile),而先前阶段的版本处于第二阶段(git show :2:newfile)。所以我可以通过一些 git 黑魔法,设法将第二阶段放在这个索引中,将第三阶段放在工作回购中......但我不知道该怎么做,所以我手动做。:-(