6

就个人而言,如果我用 gitk 查看 git 或 linux repo,我完全被大量的合并/分支所淹没。我完全不知道发生了什么。

我假设一般来说,您会尝试在公共存储库中拥有尽可能线性的历史记录,并且只有几个分支(例如 master、maint、next、pu - 就是这样)。即我假设很少使用合并,并且主要使用rebase。显然我错了。

  1. 我想知道 git/linux 维护者做了什么来获得一个简单的概览
  2. 为什么他们不更频繁地使用 rebase 并且拥有比只有 master、maint、next pu 更多的分支?
4

4 回答 4

3

在与 Git 和 rebase 的关系中,有一件非常重要的事情需要理解。

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

在本地进行合并期间,您可以根据需要尽可能多地使用 rebase,因为它是本地的。如果你喜欢线性历史。换句话说,您不会看到他们所做的变基工作。

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

于 2012-04-01T16:10:24.233 回答
2

我不是内核开发人员,当然不能代表他们说话。 这是Linus 谈到的一些参考资料,我认为它可以回答您的问题。我要补充一点,有很多随机分支是令人困惑的,但是对其施加一点顺序可以更容易地拥有分支恕我直言。(顺序示例可能会将主题分支命名为topic/short_name,包括有意义的提交消息,开发人员保留一些外部文档并实际相互交谈,或者任何适合您的环境的内容。)

我还将包含对此工作流程的参考,因为它实际上是 Git 阅读所必需的,并且适用于您的问题。

于 2012-04-01T16:20:12.360 回答
0

请记住,当您克隆一个 git repo 时,您可能会获得所有远程分支,但您只创建和签出一个本地分支(通常是mastertracking remotes/origin/master

(这就是为什么您会遇到诸如“将所有远程 git 分支跟踪为本地分支”之类的问题的原因)

根据您感兴趣的主题,您只需签出和跟踪一个特定的分支,做一些工作,并定期在您的本地分支上重新设置基础,origin/branch以使您的工作保持最新。

您不会从官方公共分支合并到您的分支:这将是一个反向合并,应该避免它们,如“什么是具有共享功能分支的正确 git 工作流? ”中所示。

于 2012-11-20T12:51:34.810 回答
0

查看 Greg KH Ask a kernel developer column:他详细解释了他的工作流程。Greg 曾经是 stable 分支的维护者;他是许多子系统(包括 USB)的当前维护者。

于 2012-11-20T13:02:58.103 回答