Git: 将本地分支合并到远程分支 A 和 B,而不将代码从 A 插入 B/B 插入 A

Git: Merge local branch to remote branches A and B without inserting code from A into B/ B into A

我正在使用的存储库有 3 个分支:Master、Demo 和 Development。经过适当测试的东西从开发到演示。 Demo之后进入Master,然后部署。

在处理更改时,我从 Demo 分支(具有最新功能的最稳定的分支)中拉取并创建一个本地分支。

为了测试我的更改,我需要将它们合并到开发分支中。但并非 Development 分支上的所有内容都已准备好进入 Demo 分支。

有没有一种方法可以将我的更改合并到开发分支中,如果我的更改没问题,然后我将我的分支合并到演示分支中,但不从开发中引入任何代码?

如果这是一个新手问题和令人困惑的标题,我们深表歉意。

如果我理解你的流程是正确的,那么你从 Demo 中拉出来并分支到一个新的分支中。您将此分支合并到 Development 以便在那里进行测试。您可以使用相同的分支,然后将其合并到 Demo。但在 Development 中通过测试并不能确保它也适用于 Demo,因为代码不同。

相反,您可以从开发中拉出,然后分支到功能分支以开发您的功能。准备就绪后,您可以合并回 Development 并对其进行测试。如果所有测试都通过,您可以合并到 Demo。通过这种方式,您可以确保通过所有测试的相同代码也在分支 Demo 中,并且您不会对 Demo 有任何意外。

如果您在 Development 中有不应该进入 Demo 的功能,那么您可以使用 feature toggles 隐藏它们。

是的,您可以在合并之前测试您的开发分支:

1) 创建一个分支 ex: task1: git checkout -b task1

2) 完成这些更改后,提交并推送到此分支

3) 然后进行合并请求(gitlab 概念)或拉取请求(github 概念)

4) 现在是时候在本地测试这个分支了:

4-1) git fetch origin

4-2) git checkout -b task1 origin/task1

5) 现在您可以在本地查看更改,如果可以则尝试合并它:

5-1)

git fetch origin
git checkout origin/master

5-2) 合并这个分支:

git merge --no-ff task1

解决冲突并纠正错误(如果存在)然后将此版本(如果完美)推送到您的分支 ex : master:

git push origin master

如果您与显示的头部消息分离,则改为执行此操作:

git push origin HEAD:master