比方说
- 你在 github 上创建了一个项目
- 多人(少于 5 人)正在处理这个分叉
- 目标是对我们的更改提出拉取请求
在对我们的 fork 进行几次提交之后,我们现在想要将我们的 fork 更新为源项目中的最新 HEAD。因为多人在这个分支上工作,标准的方法是拉下源项目,然后进行合并提交以从源项目中引入最新的 HEAD。
我们不喜欢这样,因为它使我们的历史非线性并且我们将有许多“无用”的合并提交。
我们的替代想法是:
- git pull --rebase 使本地拥有最新的分叉 HEAD
- 重新设置我们的 fork 以引入新的最新 HEAD 源,这样我们的提交就在源 HEAD 之后
- git push --force
- 其他人都将通过 git pull --rebase 获得最新信息(我们可以为每个人设置默认值)
历史是线性的,只是对分叉的提交者进行了一些协调。
这种方法有什么问题?