为什么git branch没有任何祖先

时间:2016-03-22 08:13:31

标签: git git-branch

昨天下午,我的一所大学做了下图所示的git提交。我想知道你怎么能用git做这些奇怪的事情。通常,每个分支都应该有一个之前存在的祖先分支。至少在我对git的理解中。

这个git历史怎么可能得到,为什么这个有用呢?

Strange Git branch

1 个答案:

答案 0 :(得分:4)

  

但是第一个分支之后的所有分支都应该有一个祖先。

否:您可以随时创建一个或多个孤儿分支

git checkout --orphan newbranch

在这个新分支上进行的第一次提交将没有父级,它将成为与所有其他分支和提交完全断开的新历史的根。

在您的情况下,检查远程repo端的4-x-dev-cam分支的历史记录,并查看其历史记录是否以没有父级的提交开始。

  

为什么这有用呢

  • repo git本身至少有一个孤儿分支(master旁边):todo branch,以保持管理脚本本身不属于git源。
  • 任何GitHub page projects至少有另一个孤儿分支(master旁边):gh-pages,以便管理与您的项目相关联的网站。

基本上,只要您需要在同一个仓库中管理与您的主项目正交的内容(管理脚本,网站以说明您的项目,......),孤立分支是一种很好的隔离方式二级历史。

4-x-dev-cam的情况下,一个可能的解释是从头开始大规模重写项目。
在这种情况下,孤立分支也是将新历史与先前分支分开的好方法。