Git - 2个独立的开发分支 - 是否 cherry-pick ?

标签 git merge branch cherry-pick

我在 Git 中有 2 个独立的开发分支,develop1develop2。 这 2 个分支有一个共同的祖先,在 master 上提交 C1。这 2 个分支包含 2 个产品发布周期,将在大约 6 个月内加入(都 merge 到 master 中)。

在 6 个月的大 merge 之前,分支 develop1develop2 将保持分离,develop1 <-> develop2 之间不会进行 merge 。

但是,一些更改(如项目结构、脚本更改)将在两个分支上完成。

我的想法是在 develop1 上执行这些更改,然后将它们挑选到 develop2

我的问题:

  1. 这样做明智吗?
  2. 这会导致以后执行大 merge 时出现问题吗?

我问这个问题的原因是因为我读到过 cherry-pick 可能会导致问题,因为会创建新的提交。

一个引用列出了可能的问题: http://blog.founddrama.net/2013/07/git-cherry-pick/

最佳答案

我总是提到同样的问题与 cherry-pick (如“git - cherry-pick - HOWTO / WHYTO”)

第二个问题在这里不相关,因为你只是挑选那些独立工作的提交,并且在它们被 merge 到 master 之前在第二个分支上进行了测试/验证。

但是当 develop1 时第一个可能是个问题, 然后 develop2将 merge 到 master。 merge 本身应该没问题。
但是,如“Git cherry pick and datamodel integrity”中所述,更改将在 merge 提交的历史记录中出现两次。

如果可能,一次develop1 merge 到master , 我会 rebase develop2在更新的 origin/master 之上, merge 前 develop2返回master : 这会检测到相同的提交并且不会应用它们两次。

关于Git - 2个独立的开发分支 - 是否 cherry-pick ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432350/

相关文章:

jpa - 如何在 JAXB 反序列化后在合并时忽略具有空值的 JPA ManyToOne 属性?

svn - 有来自一个 SVN 项目的 2 个产品 - 如何只为一个产品保留某些更改?

c++ - 如何在宏 BranchCallback 中修复边界/更改变量边界? C++

eclipse - EGit 的兼容性——或者有其他选择吗?

git - 如何在 git bitbucket 中克隆一个特定的分支

svn - Subversion 中的合并是否比 Team Foundation System 中的合并更困难?

git - 如何将 Gerrit 更改移动到不同的分支?

git - "git add -A"和 "git add ."之间的区别

git - 从 ClearCase 迁移到 Git

java - 使用 Java 将两个 XML 文件合并为一个 XML 文件