我似乎找不到一个好的方法来使用git add -p
,但告诉git忽略所有空格变化。 我不想重置本地更改。
情况是这样的:我有所有的更改都保留在本地,并将它们分成单独的提交。 然后我尝试了一个minifyer,并用它们的压缩版本覆盖了所有的css文件。 我试图“取消压缩”一切,但它仍然会弄乱git diff-因为有许多空格变化-而且我似乎不能让我的存储库回到一个可以看到实际更改的地方。
谢谢你的帮助!
我似乎找不到一个好的方法来使用git add -p
,但告诉git忽略所有空格变化。 我不想重置本地更改。
情况是这样的:我有所有的更改都保留在本地,并将它们分成单独的提交。 然后我尝试了一个minifyer,并用它们的压缩版本覆盖了所有的css文件。 我试图“取消压缩”一切,但它仍然会弄乱git diff-因为有许多空格变化-而且我似乎不能让我的存储库回到一个可以看到实际更改的地方。
谢谢你的帮助!
这是最简单的方法。 如果您不想在工作目录中重置和重新添加,则没有一种简单直接的方法。您应该按照以下步骤执行:
git diff -w --no-color | git apply --cached --ignore-whitespace && git checkout -- . && git reset && git add -p
git diff -w --no-color
创建一个没有终端格式和颜色的差异比较
git apply --cached --ignore-whitespace
应用忽略空格的差异,并索引它
git checkout -- .
删除未索引的“空格”更改
git reset
重置索引为非空格更改
git add -p
以补丁模式添加非空格更改
(此处源代码)
这部分回答了你的问题,而不需要存储或重置。 您可以“对比和应用”仅非空格更改,类似于以下方式:
git diff -w --no-color | git apply --cached --ignore-whitespace
:bd! | set ft=diff | r !git diff -w --no-color
继续前进,最终你只会留下空格更改需要提交。
如果您不想使用VIM:
这可能不是最快的方法,但如果您不喜欢第一种方法,它是功能性的并且能够胜任工作。
(来源和类似问题在这里)
git add
的。 - Jillian Hoenig