36

我第一次使用 git 作为版本控制系统。我正在开始一个新项目,因此要对项目中使用的技术进行一些试验(hello world 示例......),我想创建一个类似“playground”分支的东西。创建一个新的分支“playground”是否很常见,或者我应该只在 master 分支中创建一个名为 playground 的文件夹?

问候

4

5 回答 5

43

当您进行具有一定实验性质的开发工作时,您应该创建一个新分支。因此,在您的场景中,一定要创建一个新分支,而不是 master 中的文件夹。如果您将沙箱工作创建为主目录中的目录,则它将驻留在那里,直到您使用 git 将其删除。将死代码放在主分支中无论如何都不理想,因为它可能会使其他开发人员感到困惑,并且可能会在应用程序的整个生命周期中一直呆在那里腐烂。

如果您的团队遇到错误,您不希望他们浪费时间探索实验工作以确定该目录中是否存在错误。创建新分支允许您将更改与主分支隔离。如果您的实验进展顺利,您始终可以选择将您的更改合并到主分支中。如果事情进展不顺利,您可以随时丢弃分支或将其保留在本地存储库中。

于 2013-03-26T09:29:04.467 回答
10

分支有很多用途,这在一定程度上取决于您的工作流程。两种常用的工作流程是:

两者都使用所谓的主题分支来构建新功能,一旦准备好/被接受就会合并回来。

Github flow 相当简单,显然是 github 使用的。Gitflow 稍微复杂一些,并且更适合您需要支持应用程序的多个版本(可以应用修补程序)时。

最后,您使用哪种工作流程是一个偏好问题,但是因为在 git 中创建分支非常便宜,所以创建多少分支并不重要(最终,再次删除)。

于 2013-03-26T09:32:54.720 回答
9

在这些情况下,您应该考虑创建新分支并对其进行处理:-

  • 当您想在沙盒环境中工作/测试某些东西时。

  • 在本质上保持提交简短是一种很好的做法因此您的频繁提交可能会干扰其他人的开发区域因此最好在分支上完成您的工作,然后稍后将您的分支合并到主分支中。[提示]请记住通过经常将主分支合并到您的分支来保持您的分支与主分支同步。所以在稍后的时间点,你没有很多东西可以手动合并。

  • 你想解决一个错误。最好在其他分支上解决它并稍后合并它。

  • 如果您的提交出错/破坏了您的构建,则生产构建不受影响。所以我更喜欢使用至少两个分支 dev 分支和 prod 分支。当一切都经过全面测试后,将您的开发分支合并到生产分支。

于 2013-03-26T09:53:01.793 回答
3

你应该通过实验来大胆地学习,但在操场上的回购中。
回购中的游乐场目录将受益较少。
玩一玩,犯一些错误,学习一些东西 - 删除它几次,然后疯狂。

例如

$ 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 中以您选择的语言获取一个活动项目的分支,并尝试在其中使用真实代码进行合并、变基等。

于 2013-03-26T09:38:29.717 回答
2

常见的方法是使用 master 分支作为 live 分支。然后你从 master 创建新的分支并处理它们(特性分支)。完成工作后,您将更改合并回您的主文件。

您可以像开发分支一样构建新的远程分支,并在您只需要预览时将您的更改合并到此分支。有一些方法,但谷歌上有很多信息。

分支和合并
Git 分支模型

于 2013-03-26T09:34:27.677 回答