使用one-man git项目的分支是否明智?

时间:2009-11-15 19:41:59

标签: git

我在git上有一个小项目,我是唯一的开发人员。现在,我只使用了一个主分支来实现它。

现在该项目正在以某种方式工作,我想实现一些新功能。问题是,我应该为每个新功能创建新分支并在之后将其合并吗?

事实上,我的工作流程只是改进了“功能分支”,并且大部分时间都将其合并到未更改的“主分支”中,因此创建新分支是否有意义?

8 个答案:

答案 0 :(得分:19)

来自gitworkflows手册页:

  

任何重要的功能都需要   要实现的几个补丁,可能   获得额外的错误修正或改进   在其一生中。

     

直接提交所有内容   集成分支导致许多   问题:糟糕的提交不可能   没收,所以他们必须还原一个   一个人,这造成了混乱   历史和进一步的错误潜力   当你忘记恢复部分时   一组变化。并行工作   混合变化,进一步创造   混乱。

     

使用“主题分支”解决了这些问题   问题。

即使您是唯一的开发人员,也应该使用主题分支(也称为功能分支)。

除了上面提到的原因外,我还要补充一下:

  • 如果您的功能需要很长时间才能完成,那么使用功能分支可以轻松暂停该功能的工作以处理其他功能。
  • 如果您有可能需要支持多个版本的代码(即您当前的版本是v2.0,但客户/用户使用v1.0,那么使用主题分支可以轻松地将错误修复合并到多个版本。

答案 1 :(得分:8)

  

我应该为每个人创建新的分支   新功能并将其合并   事后?

是的,因为在实现该功能的过程中,您会在生产代码中找到一个停止显示的错误,您会感谢您可以git checkout master回到生产中的代码并修复它。我的规则是始终让我的主分支处于可部署状态。

答案 2 :(得分:3)

我会说是的,对我来说每次将代码推送到生产环境中,我都会创建一个版本分支。因此,如果出现问题,我可以简单地返回到该分支,然后修复该修复程序,然后将我的代码更改合并到主干中。

答案 3 :(得分:2)

我可能会说它可能是个人偏好,但在我工作的某个独立项目中,至少为新工作创建一个分支,让主分支可用于修复bug有时很有用。当有人向现有版本报告错误时,我发现自己正在处理一些新事物。在那种情况下,我可以轻松地搁置新代码并修复主分支上的错误,然后回到我正在处理的事情。然后最后将它们合并在一起。

我通常不会为每个新功能分支。我通常不会同时处理多个功能...只会偶尔使用一次,在这种情况下,它取决于两个功能在文件方面重叠多少会导致我再次分支。

答案 4 :(得分:2)

即使在一个没有客户的简单1人项目中,我也会对功能分支说“是”。

原因是工作流程。如果您使用的单个工作流程可以应用于您参与的所有项目,那么每次都会出错,而且思考的决策也会减少。如果你的“琐碎”项目突然有了它自己的生命,它也会让生活变得更轻松: - )。

(单个工作流程当然是理想的,但任何有帮助的......)

答案 5 :(得分:2)

添加其他人的说法:分支是如此容易创建&坚持git,为什么不做一个分支?即使您永远不需要在旧分支上进行错误修正/更新,您仍然会通过您一年中乐意拥有的分支机构获得一些关于代码库的额外元数据。

我非常喜欢制作各种功能分支,原因有二:首先,你可以构建你的工作流程,以便主分支随时可以发货(这很酷),其次,你有有一些功能分支等的历史记录,以gitk或qgit等形式查看树,为单个行不会对代码库的历史提供非常酷的高级感觉。

答案 6 :(得分:0)

经验法则:如果您在开发过程中破坏了产品,请进行分支。 假设您在主干中发现了一个错误,并希望修复它。

答案 7 :(得分:0)

只要对你有所帮助,这是有道理的 我将SVN用于我的个人项目,有时当我想研究一个新功能或抛弃大量代码时,我喜欢分支我的主分支。

这样我可以长时间处理新功能(读取:多次提交)如果我失败我总是可以回到主分支,如果我成功,我可以合并整个分支或只是有意义的变化。