147

什么是 git 主题分支?它在某些方面与普通分支有什么不同吗?是否有任何不是主题分支的分支?

4

4 回答 4

124

主题分支通常是您在本地创建并且具有对有意义的名称的轻量级分支。它们是您可能为预计需要一些时间才能完成的错误修复或功能(它们也称为功能分支)工作的地方。

另一种分支是“远程分支”或“远程跟踪分支”。这种类型的分支跟随别人工作的发展,并存储在您自己的存储库中。您定期更新此分支(使用git fetch)以跟踪其他地方发生的情况。当您准备好赶上其他人的更改时,您将使用git pullfetch 和 merge。

我还看到了另一种分支,它本质上是同一存储库中完全独立的文件树。例如,Git 存储库本身包含名为manhtml的头,它们包含与master分支完全不同的内容。我不知道这些类型的分支通常被称为什么。

于 2008-11-12T18:16:52.330 回答
87

这不是一个技术术语。它只是指为实现特定功能或修复错误而创建的分支。“主题”本质上是创建分支的原因。

于 2008-11-12T17:03:24.773 回答
30

https://github.com/dchelimsky/rspec/wiki/Topic-Branches很好地解释了这一点:

“主题”分支是您在处理单个“主题”(错误修复、新功能或实验性想法)时使用的单独分支。建议使用主题分支而不是直接在“master”之上工作,因为:

{...访问链接...}

因此,出于所有这些原因,建议使用主题分支来准备提交,即使是简单的贡献,如单次提交错误修复等。

该示例还提供了示例。这实际上让我想到,这可能是大多数商店已经在做的事情。我参与过的所有敏捷项目都是如此。我赞成“这不是一个技术术语”,因为我觉得这很中肯。

于 2011-11-12T18:49:26.493 回答
4

看起来不是主题分支的最突出和最重要的分支类型将是主要的公开可用存储库上的发布分支,对吗?

这可能适合你,但那是关于你和你正在考虑的项目;它不是由 Git 决定的。

大多数版本控制系统(尤其是集中式系统)规定或强制执行特定的工作流程,包括使用分支的意义。Git(以及在某种程度上大多数分布式 VCS)认为工作流、使用什么分支、何时提交、使用什么不同的 repos 等等都是由用户和用户之间的协议(策略)选择的。所以 Git 并没有在技术上强制执行这些。

这是让我难以学习 Git 的原因之一。Oliver Steele 从用户的角度解释了这一点,写了关于Commit Policies的文章。

于 2008-11-13T17:40:32.897 回答