1

我希望我的代码的几个不同版本,在其开发生命周期的不同阶段,都受到版本控制并始终同时存在于网络上。版本通常被命名为developmentstaginglive,其结构如下图所示。

Sitename
  |--Development
  |--Live
  `--Staging
  • 是创建三个独立的存储库还是创建一个永久签出三个分支的存储库更好?
  • 每个工作流程各自的优缺点是什么?
  • 作为 Git 新手,如何实现首选工作流程?

附录

我更喜欢创建一个存储库,但这意味着在其中创建存储库Sitename并在其中包含三个工作目录,但是我的理解是 Git 不支持嵌套的工作目录。我知道一个名为的贡献解决方案,git-new-workdir但已读到使用此工作流程的新用户可能会遭受比收益更多的后果,因此我对替代方案感兴趣。

4

3 回答 3

0

保留一个存储库。想出一个分支机构的约定。通常是这样的:

master:代表在服务器上运行的代码以及您的用户体验

staging:(可选)表示部署到临时服务器的代码以及您选择的 beta 测试人员使用的代码。

release-candidate 或 RC:已单独测试并与其他功能一起测试并已通过的所有功能。这可以随时合并到 master 和/或 staging 中。

集成或开发:集成过去和现在(完整和不完整)的所有功能,以获得关于现在失败的反馈。

功能或任务:(通常命名为票号)包含一个功能 - 最好从一个共同点开始,作为迭代中的其他功能。

我推荐这个工作流程来管理它们:http ://dymitruk.com/blog/2012/02/05/branch-per-feature/

没有什么是一成不变的,只要确保你有条理和一致,并做对你的团队有意义的事情。

于 2012-07-17T23:06:56.933 回答
0

不确定您是否可以使用 git post check-in 挂钩来实现这一点。我会看一个真正的构建服务器解决方案(例如 TeamCity、FinalBuilder)。构建服务器在三个不同的分支上监视您的存储库,然后将它们部署到您想要的位置。

于 2012-07-19T12:20:28.023 回答
0

这是一个老问题,但仍然有很多观点,所以我认为它值得一个正确的答案。当我问这个问题时,我对 SVN 很熟悉,但对 Git 很陌生,但三年后的现在,我觉得有资格回答这个问题。

这个问题最相关的部分是:

是创建三个独立的存储库还是创建一个永久签出三个分支的存储库更好?

如果必须在这两个选项之间进行选择,那将是后者,但正确的答案不是!为不同的环境创建不同的存储库与为不同的环境创建不同的分支一样不正确。

使用 Git 的正确方法是一个项目只有一个存储库。可以根据需要多次克隆存储库。正如不同的用户可以签出不同版本的代码一样,不同的环境也可以从他们的存储库副本中签出不同版本的代码。不同的环境可能只是代码的不同用户。

于 2015-09-29T15:37:38.453 回答