git - git 中的分支会创建父子关系吗?

标签 git git-branch

如果我这样做

$ 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 Agit merge branch B 等),你可以很容易地拥有任意数量的“ parent ”。

关于git - git 中的分支会创建父子关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154233/

相关文章:

git - 如何检查两个分支是否为 "even"?

git - 正确分离两个部分重叠的 git 分支

git - 如何将某些文件推送到 Git 中的 origin/master?

git - 获取git仓库中已修改的项目

git - 预加载git存储库?

merge 两个分支时git merge ambiguous

Git 从当前 checkout 的 master 创建分支?

git - 关于使用 git 创建和访问 git 存储库的问题

git - Jenkins 管道子模块身份验证

git - 为什么在设置 github pages 时需要丢失未跟踪的文件?