最佳答案
因此,我的一个同事尝试在 web 界面中使用 GitHub 的“通过快进进行合并”选项来合并一个分支,以保持历史清晰,避免伪造的合并提交(他们合并进去的 master
分支,自即将合并的功能分支启动以来一直没有进展)。
有趣的是,这并没有像预期的那样工作: 所有的提交都得到了新的提交哈希。
仔细观察,似乎合并选项实际上被称为“ Rebase and Merge”,它似乎真的做了相当于 git rebase --force
的事情,改变了 委托人的信息(包括合并的人和合并发生的时间)。
我花了很长时间才证实了我的怀疑,因为我无法使用 cmdline 工具向我展示特性分支上的原始提交和主分支上看似相同的提交(使用不同的散列)之间的区别。
(最后,我发现 gitk
同时显示了提交者和作者的提交; 在 非常端,我发现我也可以通过 git log --pretty=raw
获得这些信息)
所以:
git rebase
没有和 --force
master
中负责的问题)