常见场景:贡献者发送包含 1 或 2 个有用更改以及由他的 IDE 自动进行的大量(我不需要的)空白更改的拉取请求。
当然,我可以告诉他调整他的 IDE,并使用 GitX 之类的工具在提交之前进行特定的更改,但损害已经造成;要么他必须重新提交并强制推送,我必须接受所有更改,或者我们中的一个人必须在合并之前添加一个“撤消”提交。
有没有更简单的方法?
理想情况下,我可以像 GitX 中的提交过程一样合并:我可以从分支中取消暂存特定更改,并且该工具将自动重写提交或在合并之前进行“撤消”提交。
常见场景:贡献者发送包含 1 或 2 个有用更改以及由他的 IDE 自动进行的大量(我不需要的)空白更改的拉取请求。
当然,我可以告诉他调整他的 IDE,并使用 GitX 之类的工具在提交之前进行特定的更改,但损害已经造成;要么他必须重新提交并强制推送,我必须接受所有更改,或者我们中的一个人必须在合并之前添加一个“撤消”提交。
有没有更简单的方法?
理想情况下,我可以像 GitX 中的提交过程一样合并:我可以从分支中取消暂存特定更改,并且该工具将自动重写提交或在合并之前进行“撤消”提交。
您在本地摆脱了空白更改,开发人员将看到您不接受的所有空白更改作为针对她的版本的更改,等等。只是痛苦蔓延四方。
唯一的出路是就一种空白样式达成一致(可能由工具强制执行,或者在提交之前由外部工具完成)。统一为所有人。
就个人而言,我会告诉贡献者进行更改并重新提交+强制推送更改。由于贡献者可能正在你的 repo 的一个分支(“起源”)中处理一个特性分支,所以没有人关注他的提交。如果贡献者在没有人关注的分支上重写历史记录,并且在您拉入更改后可能会被删除,则不会造成真正的损害。为此,贡献者还可以创建一个具有最终合并的新功能分支-能够更改,发出新的拉取请求,并删除旧的分支和拉取请求(这样就不会重写历史记录)。