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

Nar*_*rek 10 git diff git-diff

当我做

git diff -w file_name
Run Code Online (Sandbox Code Playgroud)

我看到只添加了行,但是当我删除时,-w我看到很多被删除和重新添加的行.

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

那是否有命令?

pio*_*ojo 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
Run Code Online (Sandbox Code Playgroud)

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

这是做什么的:

  • 创建提交和分支以存储完整更改.这也可以作为备份.
  • 回过头来,然后再做出改变.
  • 获取从旧代码到新代码的"diff -w",格式化为补丁.
  • 应用补丁.

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


jup*_*p0r 1

你可以做

git diff --no-color > stage.diff && git apply -R stage.diff && git apply --whitespace=fix stage.diff && rm -f stage.diff
Run Code Online (Sandbox Code Playgroud)

如果您还没有进行任何更改。