在跟踪svn repo的git repo中,我对单个文件进行了多次编辑。
现在,我想还原这些更改(例如svn revert),但只还原文件的一部分。
我希望能够查看文件上的差异,放弃(还原)我不需要的更改并保留我想要的更改。
的
git add -i
命令似乎可以选择执行此操作,但是我还不想上演此操作。
您可以直接使用进行操作git checkout -p
。请参阅下面的Daniel Stutzbach的答案。
旧答案(在checkout -p
引入之前):
您可以这样做:
git add -i
(选择要保留的块)
git commit -m "tmp"
现在,您只提交了要保留的更改,其余的则撤消了。
git reset --hard HEAD
此时,未提交的更改已被丢弃,因此您拥有一个干净的工作目录,并且要保留在顶部的更改。
git reset --mixed HEAD^
这会删除上一次提交('tmp'),但会将修改保留在您的工作目录中,且不进行暂存。
编辑:替换--soft
为--mixed
,以清理临时区域。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句