代码之家  ›  专栏  ›  技术社区  ›  Idunnoanymore

如果分支只是指针,git怎么能记住分支的路径?

git
  •  -1
  • Idunnoanymore  · 技术社区  · 1 年前

    考虑以下内容:一个主分支和一个功能分支几乎可以合并了。主分支得到更新,功能开发人员决定在提出拉取请求之前将主分支合并到他们的功能分支中,以便于上游审批。

    然后,提交图应该看起来像这样,原始分支创建为绿色,合并自main为红色:

    A rudimentary drawing made in paint, depicting two git branches. The second branch is connected to main in two places, both colored. The green coloring depicts the point where branch "feature" first deviates from main. The red coloring depicts a merge from main into feature.

    我的问题是:git如何记住特性分支作为一个抽象的“分支”,遵循底部的路径,而不是通过红线的路径?有git reflog,但上游/GitHub/任何其他用户都看不到它。

    这就是git警告从main合并到功能分支的原因吗?

    1 回复  |  直到 1 年前
        1
  •  1
  •   iBug    1 年前

    你说得对,分支只是指向提交的指针,但提交本身记录了它们的父级, 命令 .

    因此,在您的示例中 feature 分支指向具有两个父级的提交,第一个是 feature~ 第二个是 main 。然后git知道它合并了 主要的 进入 特色 而不是相反。