在 Git GUI 中,我可以选择差异的部分,然后只暂存那些行或块。如何做相反的操作,即回滚文件中更改的行。通常这些都是意外的空格更改,我只想还原它们但仍然暂存 / 提交同一文件的其他部分。
使用 git add -p
命令暂存您想要提交的部分,然后舍弃(git checkout -- 文件名
)未暂存的更改。
Git 1.6.5+ 的更新
从版本 1.6.5 开始,Git 学会了使用 -p/--patch
标志来检出。您可以使用 git checkout -p -- 文件名
一步舍弃不需要的代码块。
来自文档的说明:
在<tree-ish>(或索引,如果未指定)和工作树之间的差异中交互地选择补丁。然后将所选的补丁反向应用于工作树(如果指定了<tree-ish>,则还应用于索引)。
这意味着您可以使用 git checkout -p 来有选择地舍弃当前工作树中的编辑内容。
git add -p HEAD~1
命令可以交互地撤销两个提交之前的代码块。 - Sandip Bhattacharya在 Git Gui 中,
我使用git stash -p
来实现这个目的。它的副作用是创建一个存储了从工作树中删除的更改的stash,有时可以快速恢复它们。
--patch
是一个有用的选项。 - DawnSong