2

我们想开始使用 git,但是有一些关于分支的问题。

它是如何组织的:

  1. 每个程序员都有自己的本地存储库并在 master 分支中工作。
  2. 任何更改都会推送到裸存储库。
  3. 开发服务器具有本地存储库(主分支)并由 Post-Push 挂钩更新
  4. 生产服务器具有本地存储库(分支“生产”)并由 Post-Push 挂钩更新

如何正确地将一些提交从 master 推送到生产?

4

2 回答 2

3

原则上,您需要将更改从 master 合并到生产中。所以在一些工作区,切换到生产分支,合并主分支,然后推送到开发和生产服务器。这可以在任何开发人员的工作区中完成。

如果没有直接对生产分支进行任何更改,所有合并都将是“快进” - 即“生产分支”基本上只是指向主分支上某个位置的指针,指示最后一次更新生产的时间点. 这意味着合并也永远不会产生任何冲突。从技术上讲,在这种情况下,您可以执行“git push origin master:production”来更新远程服务器上的生产分支。

于 2012-09-04T10:16:24.247 回答
1

拥有一个中间仓库(这里是“开发”)是一种很好的做法,可以整合和调试那些可以投入生产的提交。

但我宁愿rel2.3在中间存储库上创建一个发布分支(例如“”),以便能够在将“ rel2.3”推送到产品存储库的“ production”分支之前进行最后的修复/小调整(连同一个标签,在为了标记代表 2.3 的确切提交)

因此,单个开发人员不应该直接进入生产环境:只有验证了在中间存储库上推送的内容的“集成商”(或测试人员)才应该推送到生产环境。

我会rel2.3_hotfixes在 prod 存储库上创建一个“”分支,以便在生产中隔离紧急修复。

因此,这意味着每个 repo(开发人员和“开发”)都需要同步(即重新基于)生产分支,生产分支可能在给定版本之后添加提交。

于 2012-09-04T10:31:16.760 回答