首页 > 解决方案 > git可以跟踪基础分支吗?

问题描述

我看到很多这样的问题,但不幸的是,他们都没有给出直接的答案 - git 可以跟踪创建当前分支的基本分支吗?

考虑以下分支结构:

master ---c0--c1---
          \
release1   ---c2--c3
              \
feature1       ---?

Release1 分支从 master 分支出来,并且在合并后有 2 次提交(c2 和 c3)。Master 分支有 1 个提交 (c1),尚未在任何地方合并。Feature1 分支在 c2 提交后从 release1 分支出来,并且还没有 c1 或 c3 提交。

我希望 feature1 被“束缚”到 release1,即它应该从 release1 获取更新,而不是从 master 获取更新,所以“git ...”命令应该合并 c3 提交而不是 c1。

当用户在进行合并时明确指定 release1 作为源分支时,这很容易完成。我的问题是 - git 是否能够记住当前分支是基于 release1 并从 release1 中默认提取更改?

标签: gitbranching-and-merging

解决方案


如此所述,这可以通过设置[origin/]release1feature1(何时feature1签出)的上游分支来完成。

git branch -u origin/release1

(这也被提出是这个答案与 -u, --set-upstream-to 更长的等价物)。

现在您可以简单地

git pull --rebase

何时feature1自动变基(或跳过 --rebase 以创建合并提交)到HEAD分支release1,其中包括 c2 和 c3。


推荐阅读