我们一直在使用Mercurial工作了几个月。我们已经修改了我们的工作流程一段时间,结果是:
初始快照在 staging 上,然后我们将其克隆到我们的中央存储库,并且每个人都克隆了本地。
这对我们来说已经有一段时间了,但仍有一些让我们离开的原因:“mmmmh,也许有更好的方式,它不太自然”。
我们遇到的最大问题是我们的本地计算机上有一个功能分支。
示例:
此时,该分支落后于当前默认值。如果我完成它并尝试将其合并到 QA 上,我将会遇到很多冲突(为此你几乎总是保留QA上的内容。)
我们有时会采取什么措施来缓解这个问题,我们将默认值合并到EpicNewFeature中,以使其“达到速度”。这简化了我们在QA上的合并,但它通常仍然是本地合并的一部分。
我已经阅读了关于变基的信息,这有助于使下一次合并成为一个快进因为你(从我的理解)注入中间的历史,改变你自己的历史。
我读到的关于rebase的大多数地方警告说,如果你已经推动了你的分支,你就不要这样做,如果有人可能已经撤消了你的修改,那绝对不会。你怎么能确定这一点?我们经常推送到中央存储库进行备份,我们通常只需要提取所有内容。
您是否看到了有助于我们改进当前工作流程的内容?变态会更经常帮助我们吗?
答案 0 :(得分:4)
我认为你误解了rebasing的作用。它的工作原理是简单地合并到存储库的顶端,然后切掉原始链接。这与采取“差异”并将其应用于尖端的行为几乎相同。
你仍然会遇到你想要避免的所有相同的合并冲突。
通常,处理这些冲突的最简单方法是零碎的。不要试图一次性合并到提示。