【发布时间】:2020-05-11 05:20:20
【问题描述】:
我的问题可能涉及 git 的基础知识,但我有一些误解,我想从最有经验的 git 开发人员那里获得建议。
我的场景如下:
对于某些项目,我有两个分支preprod 和master
preprod:这个分支用于接收所有开发者的本地开发,一旦客户端验证了这些开发,我将这个preprod分支合并到master
master : 用于生产环境。
场景:
我创建了一个新分支来开发auto-login 功能,
git checkout preprodgit pullgit checkout -b auto_login_v1
我开发了这个功能,我提交(2 个文件),推送然后我将auto_login_v1 分支合并到preprod。 *直到这里一切都很好。
现在我为另一个功能 newsletter 创建一个新分支,
git checkout preprodgit pullgit checkout -b newsletter_v1
和第一步一样,我提交(1 个文件),推送然后我将 newsletter_v1 分支合并到 preprod。
现在我的客户告诉我在生产环境中部署时事通讯功能,所以我将newsletter_v1 分支合并到master。
问题是通过合并第二个分支newsletter_v1,其中包含(基本上是1个文件),无意中,我还合并了第一个分支auto_login_v1的(2个文件),而我只想要第二个分支newsletter_v1 和(1 个文件)。
为什么我得到了这个(部署了 3 个文件而不是 1 个)?因为我在preprod 中合并了第一个分支然后我拉了它?
2) 在我们只想合并一个特性(分支)而不合并另一个特性(分支)的情况下,推荐的良好做法是什么?
【问题讨论】:
-
回答问题 2:如果您想推迟发布所有正在运行的功能,请不要将它们合并到将进入 prod 的分支中。你应该阅读git flow。
-
好的@Lasse V. Karlsen,谢谢
-
@Lasse V. Karlsen 因此,如果我理解正确,我们必须只将功能分支合并到
develop中?所以在我的场景中,我创建了一个新分支release(develop 和 master 之间的中介),我将 develop 合并到release,然后在这个release中,我恢复了我不想要的合并分支 master @ 987654350@ 最后,我将release合并到master并合并到 'develop' 中?之后如果我想重新申请auto_login_v1,因为客户端刚刚验证了它,我创建一个新分支auto_login_v2,其工作与auto_login_v1相同,并将其合并到开发中?