因此,我的一位同事试图在 Web 界面中使用 GitHub 的“通过快进合并”选项合并一个分支,以保持历史记录免受虚假合并提交的影响(master
他们合并的分支,自那时起就没有进展——被合并的功能分支已启动)。
有趣的是,这并没有按预期工作:所有提交都有新的提交哈希。
仔细观察,似乎合并选项实际上被称为“Rebase and Merge”,它似乎确实等同于git rebase --force
改变提交者信息(进行合并的人,以及合并发生的时间)。
我花了很长时间才确认我的怀疑确实是这种情况,因为我无法让 cmdline 工具向我展示功能分支上的原始提交和看似相同的提交(具有不同的哈希)之间的区别在主分支上。(最后,我发现它gitk
同时显示了提交的提交者和作者;最后我发现我也可以通过 获取此信息git log --pretty=raw
)
所以:
- 有没有办法通过 GitHub 的网络界面进行“适当的”快进合并(没有选项)
git rebase
?--force
- 如果不是:为什么?(我可以看到问责制的优点;例如,它回答了给定代码最终出现在谁负责的问题
master
)