【问题标题】:Is there a script which fixes git-diff --check warnings?是否有修复 git-diff --check 警告的脚本?
【发布时间】:2012-10-02 22:21:35
【问题描述】:

git-diff 有一个很酷的功能,记录如下:

--check 如果更改引入尾随空格或在制表符前使用空格的缩进,则发出警告。如果出现问题,则以非零状态退出 被发现。与 --exit-code 不兼容。

我通常在提交之前使用 --check 运行 git-diff 并修复所有警告以保持代码整洁。 是否有任何脚本或工具可以解析 git-diff --check 的输出并自动修复所有警告?

【问题讨论】:

  • 我不想摆弄提交和修改,但后来我意识到你可以使用vim 来简化这一点:如果你将git diff --check 的输出加载到缓冲区中,那么你可以使用:cbuffer (:cb) 命令将缓冲区视为vim 错误列表,然后vim 将允许您浏览错误列表。就我而言,所有错误都是同一类型,所以我只录制了一个宏来修复它们。

标签: git removing-whitespace git-diff


【解决方案1】:

本身并没有真正的脚本,但您可以很容易地使用git apply --whitespace=fix 来清理补丁。在我的脑海中,类似于以下内容:

git commit -m 'this has diff --check errors'
git format-patch --stdout HEAD | git apply --index --whitespace=fix -
git commit --amend -C HEAD

如果您希望自动执行此操作,您可以尝试将其转换为提交后挂钩,但要更加小心。

【讨论】:

  • 谢谢,看起来不错
  • 这个链接有这样的解决方案:makandracards.com/makandra/…
  • 我现在为此使用了以下命令(改编自上述评论中的链接):git format-patch -1 --stdout HEAD > stage.patch && git apply --index -R stage.patch && git apply --index --whitespace=fix stage.patch
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
相关资源
最近更新 更多