git 问题:继续将主分支更改拉入从功能分支分支出的单个开发分支中更好吗?

时间:2021-05-01 01:54:34

标签: git branch master

这可能以前有人问过,但我找不到直接的答案,可能是因为没有最佳答案,但这是我的情况:

我有 3 个分支:

  1. master(最新好代码)

  2. 功能(从 master 分支出来的长期运行的功能)

  3. 一个本地的短期开发分支(从功能分支出来,因此开发人员可以根据功能分支代码进行处理)(我们称之为 DevX,但可以有许多开发人员,每个开发人员都有自己的 DevX,例如 Dev1、Dev2 , Dev3..)

现在,让 DevX 也从 master 拉取更改并在将其合并到功能分支之前解决冲突是更好的做法吗?

还是在另一个单独的合并中更好地将更改从 master 拉入到 feature 中? (以便 DevX 更改仅反映 DevX 更改)

你有什么想法?

我的想法是,在进入功能分支之前解决 DevX 分支期间的主冲突是很有诱惑力的,这样功能分支理论上拥有主代码的大部分,但它需要更多的努力,因为 DevX 需要在主和功能分支代码。

1 个答案:

答案 0 :(得分:0)

虽然我不精通版本控制,但我的观点如下:

因为你的分支结构是这样的:

    master
      |
   feature
    /  |  \
 dev1 dev2 dev3
  • 由于功能基于 master,因此在我看来,您可以继续从 master 重新设置功能分支:

    $ git checkout master // 转到 master 分支

    $ git pull // 从远程获取最新的

    $ git checkout feature // 回到功能分支

    $ git rebase master // rebase 以获取 master 在 feature 中的变化

  • 同样,在将开发分支合并到功能之前,继续从功能分支重新设置开发分支。

    $ git checkout feature // 转到功能分支

    $ git pull // 从远程获取最新的

    $ git checkout devX // 回到开发分支

    $ git rebase feature // rebase 以获取 dev 中的特性变化

因此,如果 master 中有一个新提交,并且 dev 分支中需要该代码。 然后如上所示 rebase 功能并发布如上所示的 rebase dev,我想事情应该没问题。

发布这个我猜你从 dev 到 feature 分支的合并也应该可以正常工作。

旁注:rebase 后强制将本地推送到远程,即使 git 说要这样做,也不要执行 git pull,也许您已经意识到这一点。