在进行合并/ rebase时,我经常遇到这种情况: - 遇到一些冲突 - 解决重要问题,将其移至索引
然后,有一堆未分级的垃圾,我只想保留HEAD版本。理想情况下,我可以做" git commit&& git reset --hard",但git不会让我承诺,而仍然未合并的东西待定。我试过" git stash save --keep-index"但那失败了。我试过" git diff |补丁-Rp1" (和各种突变)。我不认为任何" git reset"模式匹配我想要的。
只需要说出一种方式"我得到了我想要的东西,只是放弃其余的"。
答案 0 :(得分:2)
没有开箱即用的解决方案,但您可以创建别名。
您可以使用:
git checkout HEAD -- <list of files to keep as HEAD>
指定您希望保留给定文件,就像它们在HEAD
中一样。
要获取可以使用的剩余冲突列表:
git diff --name-only --diff-filter=U
然后把它作为别名放在一起给出:
alias gitkeeprest="for file in $(git diff --name-only --diff-filter=U); do git checkout HEAD -- $file; done"
有了这个,你会:
HEAD
gitkeeprest
版本