繁体   English   中英

GIT-合并后分支未关闭

[英]GIT - branches not closing after merge

我们在使用GIT方面经验不足。 实际上,我们喜欢分支的概念;-)但是以某种方式,所有来自一个用户的合并都不会关闭分支...

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

一条灰色和一条蓝色的线一直直达……甚至在合并之后……那么他在做什么错呢? 有什么线索吗? 我不想想象如果他创建了更多分支并且即使合并后所有分支仍保留在历史视图中会发生什么...

非常感谢你!

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

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

在您链接到的图像中,我假设要么您所显示的部分上方还有其他提交,要么您使用的工具只是奇怪地呈现了提交图。

我不确定关闭分支意味着什么,但我会猜测:)

即使完成合并后,仍然可以使用分支。 我想这是每个设计以及应该如何设计的。 例如,即使合并完成后,您可能仍想继续与分支合作,例如为了继续专注于该分支的开发。 这就是为什么它仍显示在您引用的图像中的原因。

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

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

对于某些人来说,删除分支的refs / heads条目将是一个有用的选择,因此一步关闭所有内容[向git列表提出建议?]。 但是,我敢肯定,许多工作流程中都有一些实例,他们希望它们能够返回并整理一些小问题,而这些问题如果过早删除会很尴尬。 (尽管它会在reflog中保留一段时间)

向用户提供创建别名或脚本以结合这两种操作的任务。 它将帮助全面的教育;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM