在Git中连接分支

时间:2013-08-21 16:10:53

标签: git gitk

当我使用gitk检查我的分支时,我发现了以下内容:

Git connected branches

我创建pretty_url,切换到它,处理东西,提交,然后切换到master分支(这是干净的),然后运行git merge pretty_url,并检查{{1找到了这个。

我确定这不合适,可能gitk不干净。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

这正是你应该从合并中得到的。如果你想要改变和快进,你可以做到这一点而不是直线。

示例:

在合并之前,您遇到了这种情况:

before pic

也就是说,masterbranch的历史不同。他们共享h作为共同的祖先。合并时(通过git merge branch在“master”上进行合并时,最终会提交一个包含两个父项的提交来统一该历史记录:

merge pic

如果那不是你想要的,你可以撤消它并通过做类似的事情来获得你想要的东西:

git reset --hard HEAD@{1}  # or whatever commit matches 'j' to undo the merge
git checkout branch
git rebase master          # incorporate 'i' and 'j' commits into 'branch'
git checkout master
git merge branch           # this merge will be a fast-forward now

这将为您提供您似乎正在寻找的重新线性历史记录:

fastforward pic

答案 1 :(得分:4)

红线并不表示不洁的分支;它只是意味着master中的先前提交早于pretty_url的头部。这里不用担心。此外,git merge不适用于不洁的树木。