gpt4 book ai didi

Git:仅 merge 在分支上所做的更改

转载 作者:IT王子 更新时间:2023-10-29 01:23:04 25 4
gpt4 key购买 nike

  G---H             // Release Branch
/
/
A---B---E---F--- // master
\
\
C---D--- // bug fix branch

基于我们项目的特殊需求,出现上述情况是很常见的。我们有一些提交的 master/dev 分支。然后我们得到一个错误报告并开始在错误分支上修复它(上面的提交 C 和 D)。与此同时,更多提交发生在 dev 分支中。接下来我们被告知我们需要为客户创建一个版本,它不能包含上面的提交 B、E 和 F 引入的更改,但它应该包含错误修复。

因此,我们在更改 B 应用之前就从 dev 分支出来,但是将错误修复也纳入此发布分支的最佳方法是什么?如果我执行分支的 merge ,它将包含在 B 中所做的我不想要的更改。我可以对提交 C 和 D 进行挑选,但我读到挑选并不总是一个好主意 based on this answer基本上是因为我的 repo 协议(protocol)看起来像:

  G---H---C'---D'--- // Release Branch
/
/
A---B---E---F--- // master
\
\
C---D--- // bug fix branch

所以 C' 和 D' 显示为具有与 C 和 D 不同的 sha-1 ID 的全新提交。这真的是一件坏事吗?这会导致什么问题?是否有更好的方法将更改从错误修复分支获取到发布分支?

最佳答案

This文章建议不要 merge 两个分支,而是在 git 只会对非重复提交进行 rebase 的地方对它们进行 rebase。

但是您可以考虑只对分支进行 rebase ,而不是 cherry-pick :

rebase --onto release B bug

其中 release 是发布分支,bug 是错误分支。

然后你会得到类似的东西

         C'---D' //Bug branch      
/
/
G---H // Release Branch
/
/
A---B---E---F--- // master

但这意味着当您希望将错误修复应用到 master 时,您需要将 bug 与 master merge ,这会导致发布中的所有更改也被添加到 master。

由您决定什么最适合您。

请注意,您不应该对已被 pushed 的分支进行 rebase 给其他人,因为这会给他们造成困惑。

关于Git:仅 merge 在分支上所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6594881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com