【问题标题】:Git branching / rebasing good practicesGit 分支/变基良好实践
【发布时间】:2011-02-05 19:34:00
【问题描述】:

我有以下场景:

3 个分支:
- 大师
- MyBranch 分出 Master 以开发系统的新功能
- MyBranchLocal 分支出 MyBranch 作为我的本地分支副本

MyBranch 正在被其他开发人员(他们正在开发与我相同的功能)进行改造和推送。

作为 MyBranch 分支的所有者,我想通过变基使其与 Master 保持同步。我还需要将我对 MyBranchLocal 所做的更改与 MyBranch 合并。

有什么好的方法吗?

到目前为止我尝试过的几种可能的情况:

我。
1. 提交更改到 MyBranchLocal
2. 将 MyBranch 重新定位到 Master
3. 根据 MyBranch 对 MyBranchLocal 进行变基
4. 将 MyBranch 与 MyBranchLocal 合并

二.
1. 提交更改到 MyBranchLocal
2. 将 MyBranch 与 MyBranchLocal 合并
3. 将 MyBranch 重新定位到 Master
4. Rebase MyBranchLocal 对 MyBranch

三。
1. 提交更改到 MyBranchLocal
2. 将 MyBranch 重新定位到 Master
3. 将 MyBranch 与 MyBranchLocal 合并
4. Rebase MyBranchLocal 对 MyBranch

我已经知道场景 III 似乎将提交历史弄乱了很多,可能会重复提交。

你的经验是什么?您建议使用哪些方案来最大程度地减少合并工作并保持历史记录干净?

【问题讨论】:

    标签: git dvcs branch git-branch


    【解决方案1】:

    我在链接到Linus email 后发现了这个问题。根据电子邮件 - 在某些公共网站上发布您的历史记录后,您不应该变基,因为您可能会破坏其他人的历史记录。因此,MyBranchLocal 的 rebase 可以,但 MyBranch(与其他开发人员共享)则不行。

    【讨论】:

      【解决方案2】:

      我的个人建议。这个专注于有一个直接的提交历史,并在“更具体”的分支上失败(你最好搞砸你的本地分支而不是特性分支)。

      1. 提交对 MyBranchLocal 的更改
      2. 根据 MyBranch 重新设置 MyBranchLocal 的基础
      3. 将 MyBranch 与 MyBranchLocal 合并(应该快进)- MyBranch = Local
      4. 针对 Master 重新设置 MyBranch
        1. (可选)将 Master 与 MyBranch 合并(也应该快进)
      5. 根据 MyBranch 重新设置 MyBranchLocal 的基础

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-11
        • 2016-09-20
        • 2021-07-23
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        相关资源
        最近更新 更多