我有几个包含master和dev分支的仓库。 Master代表发布,而dev代表当前的可构建版本。对于功能,还有许多其他分支,这些分支在合并到dev后将被删除。
我最近更改为使用请求请求工作流程,在此之前,我执行了压缩合并。一些存储库是新存储库,并且始终使用提取请求工作流,但是,较旧的存储库之一(也是最重要的存储库)使用了压缩合并。修订图看起来像这样
这时,所有更改都已提交,并且拉取请求用于合并更改。忽略习俗和收藏我期望这样的修订图:
我的问题是:
第一个修订版本图有什么问题吗?
如何使图形更像第二个图形?
答案 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 意见。 :-)