如何从一系列 git 提交中移除末尾的空格更改

4

我在github上运行一个项目,有人以拉取请求的形式发送了约20个提交的序列。这些更改很不错,但是许多提交还删除了很多结尾空格。

我同意结尾空格很糟糕,但该项目充满了它,这不是清理它的地方。

我能否自动编辑提交,从每个提交中删除任何仅为空格的更改?


从你写的内容中,我理解你想使用git log并且不显示空格,是吗?如果是的话,请使用相同的选项git log -w - grimsock
不,我想编辑提交记录,以删除仅包含空格的更改 - 尝试澄清问题。 - Chris Jefferson
3个回答

2

在你的情况下,我建议您请求PR提交者修复空格或尝试在使用git合并选项将该pull request分支合并到主分支时解决该问题,例如git merge --ignore-space-change。有关更多信息,请参阅man git merge


0

您可以使用git revert来撤销已经提交的更改。这将创建新的提交,以反转在有问题的提交中所做的编辑。

然后,从现在被撤销的提交中获取更改,去除空格截断部分,并重新应用它们到仓库中。这将创建更多的新提交,以重新应用原始更改。

这是技术上的答案,但我也想建议您考虑是否值得这样做。

您最终会得到一堆基本上没有任何作用的新提交。 并且已经花费了很多时间,但没有实现任何生产力。 可能某一天您会想要去掉这些空格。

也许最重要的是,这种事情往往会在开发人员之间引起紧张关系,许多人会认为如果您在没有真正问题的情况下修改他们的工作,那么这是针对他们个人的。

我不知道您的项目/团队/其他情况,所以我可能完全错了。但根据我的经验,人们经常将这种编辑视为权力之争或琐碎之事等类似问题,这只会在开发人员之间造成问题。因此,在选择行动方案之前,请考虑这可能带来的政治/关系结果。


只需要澄清一下——这些提交目前在一个拉取请求中,所以我可以按照你说的做,但是在它们被提交到主代码之前,我也可以编辑这些提交。我不同意你关于“没有问题”的评论——改变了大约20行代码和大约500行空格变化的提交不应该放在一起。此外,它们还会导致与其他分支/拉取请求合并时出现问题。 - Chris Jefferson
就像我说的那样,我不知道情况——来自外部人员的拉取请求与已由您的提交者提交的代码非常不同。话虽如此,我没有一个好的建议来干净地自动化这种编辑。不过,您可以选择要求PR提交者重新提交它... - Dan Lowe

0

最终,我用主分支中的原始文件覆盖了每个有问题的文件,然后使用差异检查器手动添加回那些删除了我在特性分支中所做工作的更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接