重用合并的分支,好的做法?


36

当前,每次必须向应用程序中添加新功能时,我都会创建一个新分支。

功能完成并可以正常工作后,我将其与master分支合并。

但是稍后,当我需要更新此功能(如改进)时,创建一个新分支会更好还是还是需要使用master重新建立以前的分支,然后进行更新然后再次合并?

例如,我在Ruby on Rails应用程序中有一个名为modelling-member的分支。稍后,我需要向成员模型添加一些属性(在此分支中创建)。我该怎么办?使用母版对该分支进行基础设置,更新模型并再次合并,还是只是创建一个新分支?


1
如果您的项目变得非常大,则重用旧分支将非常耗时,以便git进行切换和/或更新。与创建新分支所需的几秒钟相比。
Reactgular 2015年

Answers:


33

创建一个新分支,因为:

  • 完成并希望将其合并到主分支后,全新的分支不太可能发生合并冲突。没有什么比解决合并冲突更容易出错了。

  • 自从最初实现以来,该功能可能已经经历了几次更改和更新,从而使原来的分支完全过时了。使它保持最新状态的唯一方法是将master合并到功能分支中……此时,您只是以一种不必要的复杂方式分支了master。

  • 如果只是为了简单起见,最好具有相同的更新,错误修复和新功能工作流程。这适用于分支,代码审查,错误跟踪器用法以及几乎所有其他内容。无论如何,更新现有功能,添加新功能和修复错误之间的区别通常是主观的。


7

使用一个新的分支。

对于命名,您可以考虑使用内部格式,即this_work是扩展名或更改为that_work

例如,您可以命名第二个分支

modeling-member--attributes

用-表示左侧的名称名称是原始分支

由于我们使用Jira票号作为分支机构名称,因此我们解决了一个类似的问题。有时,同一张票需要额外的工作。有时无法回滚数据库更改。在这种情况下,我们使用原始分支SEND-123和第二个分支SEND-123a


0

如果您只想保存主服务器上的合并提交,并且使用的是github,则可以对每个新功能使用“ Fork”,并在完成所有新功能后执行拉取请求并接受拉取请求。

我不建议在旧的分支上工作,因为当您将其合并到master的头时会遇到冲突,当然不需要这样做...


4
“ u”不是英语单词。此类文字演讲应保留给文字和推特。
Gort机器人

@Steven现在,即使在那里,对于大多数人来说,每个字母不再需要三到四次按键时,应该避免使用。:)
TZHX 2015年
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.