我们在使用GIT时非常缺乏经验。实际上我们喜欢分支的想法;-)但不知何故,所有来自一个用户的合并只是不关闭分支......
您可以在此处查看图片:http://i54.tinypic.com/297i14.png
有一条灰色和一条蓝线直接向前......即使在合并之后......那么他做错了什么?有线索吗?我不想想想如果他创建了更多的分支会发生什么,即使在合并之后所有分支仍然存在于历史视图中......
非常感谢!
答案 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
。这不会影响提交图,只需删除分支 - 它们就像在提交图周围移动的标签。
但是,如果您在grey
和blue
分支上继续并创建更多提交,那么这些行将继续:
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中存在一段时间)
为用户提供创建别名或脚本以组合这两个操作的任务。它将有助于全面教育; - )