如何在Git中管理开发分支?

时间:2015-07-28 11:30:41

标签: git github version-control branch gulp

对于开发人员和用户来说,哪种分支技术最简单? 我正在研究一个新的JS项目,并希望将其推送到GitHub。我可以想到一些技术,但不知道哪一种可能是最好的。 有几个JS文件,应该可用于开发(普通+日志)和生产(缩小和连接)和测试文件,这对普通用户来说并不重要。我将使用Gulp创建那些缩小的文件。

目前的想法:

  1. 一个常见的开发人员分支,或多或少是主分支的副本。
  2. 主分支,仅包含缩小文件而非测试用例。

    2.1。开发人员分支永远不会合并到master中,这对于分支来说可能是不寻常的。

    2.2。普通用户可以下载主zip,并且只有相关的文件。

  3. 我认为第二个的缺点是它更复杂,但我认为它更友好。

    第二点是否有任何真正的缺点,或者第三点可能更好?

1 个答案:

答案 0 :(得分:2)

以下是我将如何做到这一点(并在几个项目中完成):

  • 最初开始使用一个分支来简化操作。您可以稍后添加更复杂的分支结构(参见下文)。
  • 在您的仓库中添加类似dist文件夹的内容。这将保留您的生产就绪,缩小文件。
  • 在Gulp脚本中添加任务,根据需要在dist文件夹中创建文件,例如:在创建发布时。此时编译,uglify,minify等,然后将文件添加/提交到dist文件夹。
  • 使用git tag标记版本,然后将标记推送到远程仓库来创建版本。

这样,您可以处理源文件,只在创建正式版时更新dist文件夹。您可以通过Grunt / Gulp自动执行所有这些操作,并在您愿意的时候触发发布。

如果你把它与npm或Bower这样的东西结合起来(不知道哪个更适合你的项目而不知道更多),你甚至可以定义如果有人想要消费你的项目那么下载哪些部分。 npm和Bower都允许您为资源定义包含/排除模式。当有人使用npm/bower install your-library时,他们只会获取dist文件夹的内容,而不会获取源回购中包含的任何来源,测试和虚拟文件。

要获得更高级的分支/发布模型,请查看Git Flow,它使用develop分支进行正在进行的工作,并仅为已发布的版本保留master分支。 / p>