GIT - 合并后分支机构没有关闭

时间:2011-07-29 15:40:08

标签: git merge git-branch

我们在使用GIT时非常缺乏经验。实际上我们喜欢分支的想法;-)但不知何故,所有来自一个用户的合并只是不关闭分支......

您可以在此处查看图片:http://i54.tinypic.com/297i14.png

有一条灰色和一条蓝线直接向前......即使在合并之后......那么他做错了什么?有线索吗?我不想想想如果他创建了更多的分支会发生什么,即使在合并之后所有分支仍然存在于历史视图中......

非常感谢!

3 个答案:

答案 0 :(得分:15)

进行合并时,新提交仅向前移动当前分支。指向另一个分支的分支名称保留在原来的位置。换句话说,如果您遇到这种情况:

A---B---C blue
 \
  D---E---F grey

......并且做:

git checkout blue
git merge grey

你最终会得到:

A---B---C---G blue
 \         /
  D---E---F grey

如果您要删除grey分支,则可以执行git branch -d grey。这不会影响提交图,只需删除分支 - 它们就像在提交图周围移动的标签。

但是,如果您在greyblue分支上继续并创建更多提交,那么这些行将继续:

A---B---C---G---H---I blue
 \         /
  D---E---F---J---K---L grey

在你链接到的图片中,我假设在你所显示的部分之上还有进一步的提交,或者你正在使用的工具只是奇怪地呈现提交图。

答案 1 :(得分:3)

我不确定你关闭分支是什么意思,但我会猜测:)

即使合并完成后,仍然可以使用分支。我想这是每个设计以及它应该如何。例如,即使在完成合并之后,您可能仍希望继续使用分支,比如为了继续关注该分支中的开发。这就是为什么它仍会显示在你提到的图像中。

如果您不想这样做,可以在合并后删除分支,这可以通过在另一个分支(如master)中发出命令git branch -d <branch>来最终关闭它。 (如果最新提交已与您处于活动状态的分支合并,则只会删除分支,因此不存在丢失数据的风险。)

答案 2 :(得分:1)

目前git需要两个步骤来合并和关闭“任务”分支,其中合并名义上表示任务的关闭,并且不再需要分支。

对于某些人来说,删除分支的引用/头条目以便一步完成所有内容[对git列表提出建议?]这可能是一个有用的选项。但是我确信许多工作流都有这样的实例,他们希望能够回过头来整理一些小问题,早期的删除会让人感到尴尬。 (虽然它会在reflog中存在一段时间)

为用户提供创建别名或脚本以组合这两个操作的任务。它将有助于全面教育; - )