我应该在什么时候创建一个新的分支?

44

我正在启动一个新项目,并且为了对项目中使用的技术进行一些试验(例如"Hello World"示例...),我想创建类似于"playground"分支的东西。是否常见创建一个名为"playground"的新分支,还是仅在主分支中创建一个名为"playground"的文件夹?

5个回答

47

当你进行一些有点实验性质的开发工作时,应该创建一个新的分支。因此,在你的情况下,一定要创建一个新的分支而不是在主分支中创建文件夹。如果你将沙盒工作创建为主分支中的目录,则它将一直驻留在那里,直到你使用git删除它。让死代码停留在主分支中绝非理想之举,因为它会让其他开发人员感到困惑,并可能在应用程序的生命周期内一直腐烂。

如果你的团队遇到了一个bug,你肯定不希望他们浪费时间去探索实验性工作,以确定该bug是否存在于该目录中。创建一个新的分支可以使你的更改与主分支隔离开来。如果你的实验得到了良好的结果,你总有机会将你的更改合并到主分支中。如果事情没有那么顺利,你可以随时丢弃该分支或将其保留在你的本地仓库中。


9
你应该创建一个新的分支......始终如此,不可更改。 - Sébastien Dawans
想象一下,我的项目完全崩溃了,现在我决定完全重写该项目,但所有开发和改进都必须在同一个代码库中进行。创建一个新分支(命名为“re-creation”)然后合并到主分支是常见的做法吗?如果不是,请问您对该场景有其他建议吗? - Sadra

12

分支有许多用途,这取决于您的工作流程。两种常用的工作流程如下:

两者都使用所谓的主题分支来构建新功能,并在准备好或被接受后合并回去。

Github 流程非常简单,显然是 Github 使用的流程。Gitflow 稍微复杂一些,更适合需要支持应用程序的多个版本以及可以应用热修复的场景。

最终,使用哪种工作流程是个人偏好的问题,但由于在 git 中创建分支非常便宜,因此您创建(并最终删除)多少分支并不重要。


10

以下情况下,您应考虑创建新的分支进行工作/测试:

  • 当您想要在沙盒环境中测试某些内容时。

  • 保持提交的短小精悍是一种良好的实践。因此,您频繁提交可能会干扰其他人的开发区域,所以最好在分支上完成您的工作,然后再将分支合并到主分支中。 [提示] 记得定期将主分支合并到您的分支中以保持同步。所以在后续的时间点,您不需要手动合并许多内容。

  • 您想要解决一个 bug。最好在另一个分支上解决它,然后再合并。

  • 如果您的提交出了问题/破坏了构建,生产构建不会受到影响。因此,我更喜欢使用至少两个分支 dev 分支和 prod 分支。当一切都经过充分测试后,将 dev 分支合并到 production 分支中。


5

一定要通过实验来学习,但要在Playground repo中进行。

将Playground目录放在repo中会带来较少的好处。

尝试一下,犯些错误,学点东西——多次删除并尽情折腾。

例如:

$ mkdir playground  
$ git init
$ touch hello-world
$ git add hello-world
$ git commit -m "my first commit"
$ git branch goodbye
$ git checkout goodbye
$ echo "goodbye" | cat >>hello-world
$ git status
$ git add hello-world 
$ git commit -m "goodbye commit"
$ git merge master

我建议从GitHub上选择一个活跃的项目,使用你所选的编程语言的分支,并尝试使用真实的代码进行合并、变基等操作。

2
常见的方法是使用主分支作为生产分支。然后从主分支创建新的分支并在其上进行工作(功能分支)。完成工作后,将更改合并回主分支。
您可以构建新的远程分支,例如开发分支,并在需要预览时将更改合并到该分支中。有一些方法,但谷歌上有很多信息。 分支和合并
Git 分支模型

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接