Git中的分支是什么?

时间:2010-12-26 00:49:13

标签: git version-control branch

我有几个Git存储库,都有一个名为'master'的分支。但是什么是分支,你可以用它们做什么?

感谢。

5 个答案:

答案 0 :(得分:2)

如果要在自己的环境中开发特定功能,则使用分支。因此,您不要将未经测试的代码与主干一起混合,后者通常是稳定版本。分支直到您开发并测试了该功能,然后将分支合并回主干。

答案 1 :(得分:2)

分支通常是彼此独立的并行开发流。与时间表类似。 Here是具有多个分支的软件项目的图片。

您可能有一个分支,其中包含您的所有稳定工作,另一个分支包含实验工作。您可能在其间有另一个分段分支,用于在将实验分支移动到稳定分支之前对其进行限定。这些都是branching strategies。不同的团队可能有不同的分支等。

根据您的版本控制系统,分支的实现和使用可能会有很大差异。在集中式版本控制系统(例如SVN)中,branch本质上是分支时的整个源代码的副本(类似于文件系统上的cp -R)。在此之后,开发将在该分支上独立于主分支。所以你会有这样的东西

--o---0---o---o---o---- (parent branch)
       \
        \---o---o---0--- (new branch)

o表示提交,0是分支点。您使用此系统创建的分支是全局的(项目中的每个人都可以看到它们)并且它们非常繁重。您可以在需要时将merge新分支返回到父分支。这可能需要merge conflicts

使用分散式VC(我使用git作为示例),branches更轻量级。它们只是指向DAG中代表项目历史的位置的指针。您可以通过创建新提交来推动它们。此外,分支将是本地的(即只有你可以看到它们,除非你决定发布它们)。

但是,分支和合并有一些概念性内容,如果不阅读文档,就无法理解。我建议您查看您正在使用的VCS的文档,如果您有任何特定问题,请回到堆栈溢出。

答案 2 :(得分:2)

以下是我喜欢引用的一篇好文章:Successful Git Branching Model

这篇文章是一个实用且成功的案例研究,是一个与Git有效合作的团队。

答案 3 :(得分:1)

由于您是GIT的新手,我热心地建议您阅读本书第3章:

http://progit.org/book/

@Noufal和@Jakob已经给出了一个很好的答案我相信。但是,当涉及到使用GIT的实际方面时,由于分支的语法不同(master,origin master,origin / master等),你总是会犯错误。

另外,我建议阅读GIT的概念而不是如何使用它,所以请查看此链接,您可能有兴趣阅读有关分支的内容:

http://www.eecs.harvard.edu/~cduan/technical/git/

答案 4 :(得分:0)

补充所提供的答案,有关于http://gitcasts.com/的分支和合并或直接转到http://blip.tv/file/4094707

的git网络广播