Git Master分支包含其他分支信息

时间:2019-01-29 08:15:41

标签: git merge version-control

这可能是默认行为,但这使我很难理解。 我一直以为分支必须是一行,没有其他“分支”。 我做了以下实验:

  1. 启动git仓库。
  2. 在主分支上两次提交(m1,m2)
  3. 签出一个名为“ dev”的新分支
  4. 在dev分支上两次(d1,d2)。
  5. 结帐大师
  6. 提交两次(m3,m4)

现在该分支如下所示

Before Merge

据我了解,master分支中有4个签到,dev分支中有2个签到。

现在我执行以下操作:

  1. 合并dev分支(git merge dev)

分支如下所示:

enter image description here

我认为master分支是绿色的,它包含5次提交。 开发分支是紫色的分支,它包含4个提交。

实际上,在master分支中,我使用git log来检查提交,实际上它有7个提交。这让我感到困惑。

有人可以帮忙解释吗?

1 个答案:

答案 0 :(得分:1)

git log列出可从给定引用(如果未提供引用,则为HEAD)的所有提交。您看到的 这7个提交都是可以实现的。如果只想看树的一部分,可能需要给log一些其他特定的参数。 (请查看the doc的例子)

此外,您的惊讶可能是由于对git中的分支有误解而导致的。树中的任何提交都不属于。可以通过不同的点访问整个树,分支只是指向一个提交的快捷方式。