Git修订图不正确

时间:2019-12-13 17:54:37

标签: git github revision-graph

我有几个包含master和dev分支的仓库。 Master代表发布,而dev代表当前的可构建版本。对于功能,还有许多其他分支,这些分支在合并到dev后将被删除。

我最近更改为使用请求请求工作流程,在此之前,我执行了压缩合并。一些存储库是新存储库,并且始终使用提取请求工作流,但是,较旧的存储库之一(也是最重要的存储库)使用了压缩合并。修订图看起来像这样

enter image description here

这时,所有更改都已提交,并且拉取请求用于合并更改。忽略习俗和收藏我期望这样的修订图:

enter image description here

我的问题是:

  • 第一个修订版本图有什么问题吗?

  • 如何使图形更像第二个图形?

1 个答案:

答案 0 :(得分:1)

Git实际上 有符号引用,其中一个引用包含另一个引用的 name ,而不是其值。

直到最近,这些功能大部分都无法使用, 1 ,除了HEAD的特殊情况。主HEAD通常是对某些其他分支名称的符号引用。 git checkout命令或Git 2.23及更高版本中的新git switch,将为您管理此符号引用。

与此同时,到达远程,例如origin可以具有符号HEAD,例如origin/HEAD -> origin/master。您的Git会根据它在URL上询问Git时得到的结果(在这种情况下为origin Git -分支 HEAD命名)中进行设置。如果他们的 HEAD是对他们的 master的符号引用,则您的origin/HEAD应该是对{{1} }。

但是,除了这些情况之外,每个引用仅包含原始哈希ID。 draw 的最佳 2 方法是绘制包含哈希ID的引用,或指向该哈希ID选择的Git对象。应当仅将符号引用指向其他引用。


1 尝试创建包含刚刚创建的分支名称origin/master的符号分支sym

br

使用git branch br git symbolic-ref refs/heads/sym refs/heads/br 列出分支以确保其有效。现在,请Git删除分支git branch

sym

旧版本的Git会删除分支git branch -d sym !如果您的Git删除了br,则说明您有一个Git,这些符号引用可以更好地工作。

当然,

2 最佳是一个见解,但是由于我正在编写此答案,因此可以使用 my 意见。 :-)