Git还原git diff -w忽略的所有更改

时间:2015-03-17 08:24:36

标签: git diff git-diff

当我这样做时

git diff -w file_name

我只看到添加的行,但当我删除-w时,我看到很多已删除并重新添加的行。

我想更改文件,以便仅显示-w选项未忽略的更改。

是否有命令?

2 个答案:

答案 0 :(得分:5)

jupp0r走在正确的轨道上。首先,cd到存储库的根目录。然后:

git commit -a -m 'Backup commit.'
git branch pre-patch
git reset --hard HEAD~
git diff --patch -w HEAD pre-patch > patch.diff
git apply patch.diff

我不确定这是否适用于二进制更改。如果没有,您可以事先单独提交。如果此过程失败,则您的代码位于pre-patch分支。

这是做什么的:

  • 创建提交和分支以存储完整更改。这也可以作为备份。
  • 退回一步,然后再进行更改。
  • 获取" diff -w"从旧代码到新代码,格式化为补丁。
  • 应用补丁。

注意:如果您已提交更改并想要修改,只需省略第一步。

答案 1 :(得分:0)

你可以做到

git diff --no-color > stage.diff && git apply -R stage.diff && git apply --whitespace=fix stage.diff && rm -f stage.diff

如果您尚未提交任何更改。