【问题标题】:What are branches in Git?Git 中的分支是什么?
【发布时间】:2011-05-30 18:16:28
【问题描述】:

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

谢谢。

【问题讨论】:

  • 也许您应该尝试阅读文档一段时间,或者使用 Google。
  • @siride:也许你应该尽量不居高临下,并链接到你认为对提问者要求的最佳描述的内容。
  • 很抱歉,但有一定的基础研究需要人们愿意进行。几乎每个 Git 教程或文档都在很早的时候就谈到了分支。如果 Time Machine 花时间阅读 Git 的工作原理,他/她早就知道答案了。

标签: git version-control branch


【解决方案1】:

这是一篇我一直喜欢参考的好文章:Successful Git Branching Model

本文是一个实用且成功的案例研究,介绍了一个与 Git 有效协作的团队。

【讨论】:

    【解决方案2】:

    补充提供的答案,有一个关于分支和合并的 git 网络广播 http://gitcasts.com/ 或直接转到 http://blip.tv/file/4094707

    【讨论】:

      【解决方案3】:

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

      http://progit.org/book/

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

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

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

      【讨论】:

        【解决方案4】:

        分支通常是相互独立的并行开发流。类似于时间线。 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 的文档,如果您有任何具体问题,请返回堆栈溢出。

        【讨论】:

          【解决方案5】:

          当您想在自己的环境中开发特定功能时,可以使用分支。这样您就不会将未经测试的代码与通常稳定的版本trunk混合在一起。分支直到开发并测试了该功能,然后将分支合并回主干。

          【讨论】:

          • 这个答案更多地基于SVN,但它与Git相同。
          • 所以,例如:我有一个名为 Foo 的应用程序,它是 master。我正在开发一个名为 Bar 的功能,所以我在一个单独的分支中执行此操作,然后在 Bar 完成并测试后合并?
          • 是的,这正是你可以做到的。
          • Git 与 SVN 有很好的集成,有些人在 Git 中进行合并,然后在没有公司通知的情况下将其放回 SVN :D
          猜你喜欢
          • 2015-05-20
          • 2018-06-10
          • 2010-10-25
          • 1970-01-01
          • 2022-01-09
          • 1970-01-01
          • 2010-11-14
          • 2017-06-25
          相关资源
          最近更新 更多