什么是git topic分支?


137

什么是git topic分支?它在某种程度上与普通分支不同吗?是否有不是主题分支的分支?

Answers:


114

主题分支通常是您在本地创建的轻量级分支,其名称对有意义。它们是您可能需要花费一定时间才能完成的错误修复或功能(也称为功能分支)的地方。

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

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


6
我一直在寻找如何在没有共同祖先提交的情况下拥有两个分支,并发现了这一点:madduck.net/blog/…–
Nicolas

1
Wrt是一棵单独的树,我相信它们有时被称为孤立分支,类似于Github建议您手动创建github页面的方式
最高

1
为什么说主题分支必须位于本地?没有理由认为您可能不想推送主题分支。而且,类似地,其他开发人员可能会创建自己的主题分支,而您想拉它们。这个答案似乎使分支的两个完全不相关的属性混淆:分支是否是本地分支与它是否是主题分支根本无关。
Jean-Paul Calderone 2014年

@ Jean-PaulCalderone:我不认为主题分支必须位于本地。当然,如果有多个开发人员在工作,您可以远程跟踪主题分支。
Greg Hewgill

2
我认为答案暗示了这一点。为什么“ ...您在本地创建...”和“ ...具有对您有意义的名称”。组成“主题分支”的内在部分?答案的第一句话强烈暗示了这些是主题分支的重要特征,但实际上它们是否都正交于分支的“主题性”。在下面描述“远程分支”的段落中,进一步强调了主题分支的“本地创建”部分很重要的想法。我建议重新关注该答案,以不强调这些无关的分支特征。
Jean-Paul Calderone 2014年

81

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


2
是的 而不是个人分支机构,那里有分支机构:鲍勃,爱丽丝,席子等
。– webmat

...所以主题分支和功能分支是相同的东西,对吗?
Betlista

@Betlista差不多,是的。
mipadi

28

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

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

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

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

此示例还提供了示例。这实际上让我开始思考,这可能是大多数商店已经在做的事情。我曾经参与过的所有敏捷项目。我赞成“这不是一个技术术语”,因为我觉得这很麻烦。


4

似乎不是主题分支的最突出和最重要的分支类型将是主要的,可公开获得的存储库上的发布分支,对吗?

可能这对您来说是正确的,但这与您和您正在考虑的项目有关。它不是由Git决定的。

大多数版本控制系统(特别是集中式版本控制系统)都规定或强制执行特定的工作流程,包括使用分支的意义。Git(在某种程度上是大多数分布式VCS)认为,工作流,用于什么分支,何时提交,用于不同的仓库等,都是由用户和用户(策略)之间的协议选择的。因此,Git不会从技术上强制执行这些操作。

这是让Git难以学习的事情之一。奥利弗·斯蒂尔(Oliver Steele)从用户的角度解释了这一点,并撰写了有关“ 提交策略”的文章

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.