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

Git:将本地分支合并到远程分支A和B,而不将代码从A插入B/B插入A,git,merge,branch,pull,Git,Merge,Branch,Pull,我正在使用的存储库有三个分支:Master、Demo和Development。经过适当测试的东西从开发到演示。演示后,它进入Master,然后部署 在进行更改时,我从Demo分支(具有最新特性的最稳定分支)中提取,并创建一个本地分支 要将更改用于测试,我需要将它们合并到开发分支中。但并非开发分支上的所有内容都准备好进入演示分支 是否有一种方法可以将我的更改合并到开发分支中,如果我的更改是确定的,那么我会将我的分支合并到演示分支中,但不引入任何来自开发的代码 如果这是一个初学者问题和令人困惑的标题

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

在进行更改时,我从Demo分支(具有最新特性的最稳定分支)中提取,并创建一个本地分支

要将更改用于测试,我需要将它们合并到开发分支中。但并非开发分支上的所有内容都准备好进入演示分支

是否有一种方法可以将我的更改合并到开发分支中,如果我的更改是确定的,那么我会将我的分支合并到演示分支中,但不引入任何来自开发的代码


如果这是一个初学者问题和令人困惑的标题,我深表歉意。

如果我正确理解了您的流程,那么您将从演示中退出并扩展到新的分支。您可以将这个分支合并到开发中,以便在那里进行测试。您可以使用同一个分支并合并它,以便稍后演示。但在开发中通过测试并不能确保它也能在演示中工作,因为代码不同

相反,您可以退出开发,然后分支到功能分支,以开发您的功能。一旦准备就绪,您就可以合并回开发并测试它。如果所有测试都通过,您可以合并到演示。通过这种方式,您可以确保相同的代码通过了所有的测试,并且也在分支演示中,您在演示中不会有任何意外


如果您在开发中有不应该进入Demo的特性,那么您可以使用隐藏它们

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

1) 创建分支例如:task1:
git签出-b task1

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

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

4) 现在是在本地测试此分支的时候了:

4-1)
git获取原点

4-2)
git签出-b task1原点/task1

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

(5-1)

5-2)合并该分支机构:

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

git push origin master
如果您与显示的标题信息分离,请执行以下操作:

git push origin HEAD:master

“您可以使用同一个分支并将其合并,以便稍后演示。”。但这不会带来我在第一次合并到开发中时必须解决的任何合并冲突吗?为了让代码进入开发阶段,我可能会因为冲突而修改一些行。我想我的问题真的是:有没有一种方法可以基本上清理所有这些内容,然后将其合并到演示中?我现在意识到,我已经全部输入完毕,git reset可能就是答案。一个分支指向一个特定的提交。如果在分支中开发功能,则该分支将指向该功能中最近的提交。将此分支合并到开发将创建分支开发指向的合并提交。功能分支未指向此合并提交。所以您可以使用这个分支将它合并到Demo中,而不需要任何合并冲突(因为您也从Demo中分支出来)。我基本上误解了分支。现在我知道我将我的特性分支合并到开发中,合并冲突的修复发生在开发中,而不是我的分支。因此,我的分支保持不变,只有解决了冲突的发展变化和我的新工作。非常感谢。
git push origin HEAD:master