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
我正在使用的存储库有 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