Git功能分支有什么特别之处吗?

时间:2017-08-17 18:51:28

标签: git branch git-flow

我试图理解git中的功能分支。我的理解是,术语特征分支只是一种命名约定或方法,可以帮助在添加新代码时进行概念化和组织。

具体来说,我的理解是:

  • 使用feature/作为分支名称的前缀只是一种惯例(与origin/具有意义相反)
  • 创建名为feature/what-ever-my-new-feature-is
  • 的分支没有任何内在的特殊
  • 它不限制该分支与任何其他分支合并的方式/位置
  • 仍然可以将feature/与任何其他分支合并,无论它最初从何处分支(例如直接分配到master

我没有掌握一些基本的东西吗?

2 个答案:

答案 0 :(得分:1)

使用git“feature”分支更多的是在与开发人员团队合作时以一致的方式进行通信。

使用功能分支的两种常见分支策略是GitFlowTrunk。您可以深入了解它们,看看它们对您的开发工作流程有何帮助。

正如@CoryKramer所提到的,使用标准前缀(即功能,修补程序,发布等)为分支添加前缀对于使用Jenkins,Bamboo,CircleCI,TravisCI等持续集成工具自动化您的开发过程非常有帮助。实践是为特定功能分支生成构建,并阻止合并到主控,直到功能成功构建,代码审查并具有适当的测试覆盖率。

答案 1 :(得分:0)

除了所写的内容之外,我还要补充一点:你提到了一个"分支名称"以origin/开头是特别的;但这并不完全正确。

origin/master 不是具有特殊名称的分支。您通常看到的origin/master实际上是refs/remotes/origin/master - 一个远程分支引用,与分支不同。 (一个分支是一种参考,因此在它周围飞来飞去的类似词语有点令人困惑。但是一个分支是一个参考,默认情况下,当你签出它时它会被移动。 remote branch ref是一个ref,默认情况下,在与相应的遥控器通信时根据需要移动。)

(如果你有一个名为origin/master的分支,那将是refs/heads/origin/master,在这种情况下,origin/前缀将毫无意义,就像任何其他分支一样。但是一个建议的话:不要这样做。它只会导致混乱。)