我在github上运行一个项目,有人以拉取请求的形式发送了约20个提交的序列。这些更改很不错,但是许多提交还删除了很多结尾空格。
我同意结尾空格很糟糕,但该项目充满了它,这不是清理它的地方。
我能否自动编辑提交,从每个提交中删除任何仅为空格的更改?
我在github上运行一个项目,有人以拉取请求的形式发送了约20个提交的序列。这些更改很不错,但是许多提交还删除了很多结尾空格。
我同意结尾空格很糟糕,但该项目充满了它,这不是清理它的地方。
我能否自动编辑提交,从每个提交中删除任何仅为空格的更改?
在你的情况下,我建议您请求PR提交者修复空格或尝试在使用git合并选项将该pull request分支合并到主分支时解决该问题,例如git merge --ignore-space-change
。有关更多信息,请参阅man git merge
。
您可以使用git revert
来撤销已经提交的更改。这将创建新的提交,以反转在有问题的提交中所做的编辑。
然后,从现在被撤销的提交中获取更改,去除空格截断部分,并重新应用它们到仓库中。这将创建更多的新提交,以重新应用原始更改。
这是技术上的答案,但我也想建议您考虑是否值得这样做。
您最终会得到一堆基本上没有任何作用的新提交。 并且已经花费了很多时间,但没有实现任何生产力。 可能某一天您会想要去掉这些空格。
也许最重要的是,这种事情往往会在开发人员之间引起紧张关系,许多人会认为如果您在没有真正问题的情况下修改他们的工作,那么这是针对他们个人的。
我不知道您的项目/团队/其他情况,所以我可能完全错了。但根据我的经验,人们经常将这种编辑视为权力之争或琐碎之事等类似问题,这只会在开发人员之间造成问题。因此,在选择行动方案之前,请考虑这可能带来的政治/关系结果。
最终,我用主分支中的原始文件覆盖了每个有问题的文件,然后使用差异检查器手动添加回那些删除了我在特性分支中所做工作的更改。
git log -w
。 - grimsock