Git Diff - 如何还原选定的行或块

Ken*_*130 35 git diff git-gui

在Git GUI中,我可以选择差异的一部分,然后只分段那些行或块.我将如何反向操作,如在文件中回滚更改的行.通常这些是偶然的空白更改我只想恢复但仍然分阶段/提交同一文件的其他部分.

ell*_*eth 65

暂存所需的部件git add -p,然后丢弃(git checkout -- filename)未分级的更改.

Git 1.6.5+更新

在1.6.5版本中,Git学会了用-p/--patch旗帜结帐.你可以一步一步地丢弃块git checkout -p -- filename.

来自文档:

交互式地选择<tree-ish>(或索引,如果未指定)和工作树之间的区别.然后将所选择的帅哥反向应用于工作树(如果指定了<tree-ish>,则为索引).

这意味着您可以使用git checkout -p选择性地丢弃当前工作树的编辑.

  • 我知道问题是关于Git Gui,但非常感谢你为命令行用户提供了另一种选择.简单易用. (4认同)

Lei*_*ldt 13

在Git Gui,

  1. 暂存包含不需要的更改的整个文件
  2. 取消您想要还原的线条/帅哥
  3. Unstaged Changes窗格中选择文件,然后选择Commit- > Revert Changes以撤消对该文件的所有(未分级)更改

资料来源:http://git.661346.n2.nabble.com/Revert-hunk-td4991128.html


Ani*_*nil 4

对于 Git Gui:首先,单击“重新扫描”扫描已修改的文件。接下来,单击文件名左侧的图标以暂存所有修改以供提交。然后,右键单击调试行并选择 Unstage Line From Commit。

以上信息来自: http: //nathanj.github.com/gitguide/tour.html

  • 这实际上并没有恢复文件中的任何内容。 (6认同)