如何从一系列 git 提交中删除尾随空格更改
How to remove trailing whitespace changes from a sequence of git commits
我 运行 github 上的一个项目,有人发送了大约 20 个提交的序列作为拉取请求。更改很好,但许多提交也删除了大量尾随空格。
我同意尾随空格不好,但项目中充满了它,这里不是清理它的地方。
我可以自动编辑提交,从每个提交中删除任何仅更改的空白吗?
您可以使用 git revert
撤消所做的提交。这将创建新的提交,撤销在有问题的提交中所做的编辑。
然后,从现在恢复的提交中获取更改,去除空格截断部分,并将它们重新应用到回购协议。这将创建更多新提交,以重新应用原始更改。
这是技术上的答案,但我也想建议您考虑一下这是否值得做。
你最终会得到一堆基本上什么都不做的新提交。
并且在这上面花了很多时间,但没有取得任何成果。
可能总有一天你会想要去掉这个空白。
也许最重要的是,这种事情会引起开发人员之间的紧张关系,如果你在他们的工作上搞砸,而他们所做的并没有什么错,很多人会认为这是针对你的。
我不知道你的项目/你的团队/什么的情况,所以我在这里可能是完全错误的。但根据我的经验,人们通常将这种编辑视为权力旅行、小事或类似的事情,它只会在开发人员之间造成问题。因此,我建议您在选择行动方案之前,考虑一下这可能带来的政治/关系结果。
在你的情况下,我会要求 PR 提交者修复空格,或者在使用 git 合并选项(例如 git merge --ignore-space-change
)将拉取请求分支合并到主分支时尝试解决该问题。在 man git merge
中查找更多信息
我最终用主分支中的原始文件覆盖了每个有问题的文件,然后使用差异检查器手动添加了我在功能分支中所做的删除工作的更改。
我 运行 github 上的一个项目,有人发送了大约 20 个提交的序列作为拉取请求。更改很好,但许多提交也删除了大量尾随空格。
我同意尾随空格不好,但项目中充满了它,这里不是清理它的地方。
我可以自动编辑提交,从每个提交中删除任何仅更改的空白吗?
您可以使用 git revert
撤消所做的提交。这将创建新的提交,撤销在有问题的提交中所做的编辑。
然后,从现在恢复的提交中获取更改,去除空格截断部分,并将它们重新应用到回购协议。这将创建更多新提交,以重新应用原始更改。
这是技术上的答案,但我也想建议您考虑一下这是否值得做。
你最终会得到一堆基本上什么都不做的新提交。 并且在这上面花了很多时间,但没有取得任何成果。 可能总有一天你会想要去掉这个空白。
也许最重要的是,这种事情会引起开发人员之间的紧张关系,如果你在他们的工作上搞砸,而他们所做的并没有什么错,很多人会认为这是针对你的。
我不知道你的项目/你的团队/什么的情况,所以我在这里可能是完全错误的。但根据我的经验,人们通常将这种编辑视为权力旅行、小事或类似的事情,它只会在开发人员之间造成问题。因此,我建议您在选择行动方案之前,考虑一下这可能带来的政治/关系结果。
在你的情况下,我会要求 PR 提交者修复空格,或者在使用 git 合并选项(例如 git merge --ignore-space-change
)将拉取请求分支合并到主分支时尝试解决该问题。在 man git merge
我最终用主分支中的原始文件覆盖了每个有问题的文件,然后使用差异检查器手动添加了我在功能分支中所做的删除工作的更改。