2012-04-01 54 views
5

个人而言,如果我用gitk来查看git或linux回购库,我完全被大量的合并/分支所淹没。我完全不知道发生了什么。Git:git/linux维护者如何维护如此多的分支机构

我认为在一般情况下,您尝试在公开存储库中尝试使用尽可能线性的历史记录,并且只有少数几个分支(例如master,maint,next,pu - 就是它)。即我认为合并很少,主要是使用rebase。显然我错了。

  1. 我不知道什么混帐/ Linux的维护者做有一个良好的易概述
  2. 他们为什么不使用更频繁衍合,并且具有比只掌握,MAINT更多分支机构,未来PU?
+0

分支机构很便宜,所以它们经常被利用:) – Nic 2012-04-01 16:28:00

+0

2007年[Google Tech Talk](https://www.youtube.com/watch?v=4XpnKHJAok8)Linus Torvalds列举了一些他如何使用git的例子特别是内核和git本身。 – andrybak 2015-10-18 11:04:47

回答

3

有一件很重要的事情要了解与Git和rebase的关系。

Do not rebase commits that you have pushed to a public repository. 

在您正在本地进行合并期间,您可以随时多次使用rebase,因为它是本地的。如果你喜欢线性历史。换句话说,你不会看到他们所做的重建工作。

关于分支数量的另一部分只是一种经验,并不仅仅是一个概念问题。我已经完成了300多个分支的并行分支......这只是一种通过使用约定和良好概念来驯服野兽的方式。

2

我不是内核开发者,当然不能为他们说话。 Here's Linus谈到它的一些参考资料,我想你会回答你的问题。我会补充说,有很多随机分支是混乱,但施加一点点的顺序,使其更容易有分支恕我直言。 (顺序例子可能是命名话题分支机构topic/short_name,包括有意义的提交信息,开发者保留一些外部文档,实际上互相交谈,或任何适合您的环境。)

我还将包括一个参考this工作流程,因为它实际上需要Git阅读,并适用于你的问题。

+0

+1链接到该Git工作流程。这是我见过的最好的Git解释。 – 2012-06-26 00:36:50

0

请记住,当你克隆一个git回购,你可以得到所有的远程分支机构,但你只能创建和结帐一个本地分行(通常是master,跟踪remotes/origin/master

(这就是为什么你有像“Track all remote git branches as local branches”)

根据您感兴趣的话题,你只检出和跟踪一个特定的分支,做了一些工作,并定期重订上origin/branch顶部您当地的分行,让您工作起来-TO-问题日期。

您不会从官方公共分支机构合并到您的分支机构:这将是一个回合并且应该避免它们,如“What is the right git workflow with shared feature branches?”中所示。

0

查看Greg K-H Ask a kernel developer专栏:他详细解释了他的工作流程。格雷格曾经是稳定分支的维护者;他是许多子系统的当前维护者,包括USB。