如果我这样做
$ git branch a
$ git checkout a
Switched to branch 'a'
$ git branch b
$ git checkout b
Switched to branch 'b'
$ git branch c1
$ git branch c2
这些分支之间是否存在任何关系,或者是否因为其中没有任何提交而被视为“扁平”?在 SVN 中,我会像这样对这些分支建模:
master
|
+-a
|
+-b
|
+-c1
|
+-c2
但是,当我尝试关注 this question 时然后执行 gitk master a b c1 c2
,我得到一条平线,而不是我上面放的图表。
最佳答案
git 没有strict 父分支,它只有一个特定的提交路径。在这种情况下,它们都有相同的提交作为起点,所以它们都是一样的。一旦他们开始有自己的提交,他们就会成为他们自己的“线”,但他们之间不会真正有关系。
虽然您可以随时使用 git merge
轻松地与任何 分支 merge ,但“父”关系并不是那么基本。对于使用 --track
的情况,Git 确实有父级的概念(您收到父级提交的地方),但这只是一个特殊的便利功能。如果你点你的 I 并穿过你的 T(git merge branch A
、git merge branch B
等),你可以很容易地拥有任意数量的“ parent ”。
关于git - git 中的分支会创建父子关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154233/