git - merge 开发到发布分支

标签 git branching-and-merging

对于 git 方面更有经验的人来说,这可能是一个简单的问题,但我现在为此苦苦挣扎了几个小时。

我有三个分支:Develop、MyBranch & Release。

MyBranch 扩展了 Develop,由于它是一个较长的功能,因此 Develop 又两次 merge 到 MyBranch 中。 Release 是 Develop 的分支,Develop 在 Release 之前(因为我们仍在继续为下一个版本开发功能)。

现在我必须 merge MyBranch 以开发和发布。 merge 到开发没有任何问题,但我不确定 merge 到发布。由于 develop 被 merge 到 MyBranch 两次,我可能不小心 merge 了发布时不需要的更改。我该怎么办?我想:

  • 检查新分支 MyBranchRelease
  • 将两次 merge 从 Dev 恢复到 MyBranchRelease
  • 将 Release merge 到 MyBranchRelease 中解决冲突
  • 将 MyBranchRelease merge 到 Release 中

这有意义吗?希望听到你们的声音

最佳答案

所以你有:

          r--r--r (release)
         /
--d--d--d---d--d--d--d--d (Develop)
         \   \     \
          \   v     v
          mb--mb----mb--mb--mb--mb--mb

Since develop was merged into MyBranch two times, I could by accident merge changes which are not wanted on release.

按照您的描述创建一个测试分支是一个很好的策略,除了它涉及 reverting merges

另一种方法是在 MyBranch 所在的位置创建 MyBranchRelease,然后在 release 之上对其进行 rebase,同时删除两个 merge 提交。

git checkout MyBranch 
git checkout -b MyBranchRelease 
git rebase -i release

关于git - merge 开发到发布分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55185356/

相关文章:

git - 为什么 git 停滞不前?

linux - 从以 root 身份运行的 bash 脚本向用户添加 ssh key

git - 将子目录(已重命名!)分离到新的 repo 协议(protocol)中

git - 在多个 Visual Studio Team Services 项目之间共享一个 git 存储库

git - 任何源代码控制系统都可以处理基于每个客户端的分支代码吗?

git - 在 Git 中将一个更改 merge 到多个分支

mercurial - 我可以将对多个 mercurial 子存​​储库的更改提交到一个新的命名分支吗?

windows - 适用于 Windows 的 Msysgit - Cheetah 插件未显示?

visual-studio-2017 - Visual Studio 2017多个 "Keep Target Branch Version"

Git rebase 从