Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从三个分支创建一个新的GIT分支,同时保持它们不变_Git - Fatal编程技术网

从三个分支创建一个新的GIT分支,同时保持它们不变

从三个分支创建一个新的GIT分支,同时保持它们不变,git,Git,所以我现在在一个团队中工作,我有三个公关,都在我们的开发部门之上。出于演示目的,我想创建一个分支,将三个分支的内容合并在一起,但不涉及实际/原始分支,因为当我收到PR的反馈时,我希望仍然能够处理原始分支 例如,我有以下情况: Development ----> Commit1 - Commit2 - on Feature-Branch1 |\ | \--> Commit3 - Commit 4 - on Feature-Branc

所以我现在在一个团队中工作,我有三个公关,都在我们的开发部门之上。出于演示目的,我想创建一个分支,将三个分支的内容合并在一起,但不涉及实际/原始分支,因为当我收到PR的反馈时,我希望仍然能够处理原始分支

例如,我有以下情况:

 Development ----> Commit1 - Commit2 - on Feature-Branch1
             |\
             | \--> Commit3 - Commit 4 - on Feature-Branch2  
             \----> Commit5 - Commit 6 - on Feature-Branch3 
我的git branch绘图技能有点有限,但我希望您了解要点 我想实现以下目标

Development ---> Commit1 - Commit2 - Commit3 - Commit4 - Commit5 - Commit6 - on demo-features-branch 
保留原来的三个功能分支不变

最好的方法是什么

有没有办法将分支复制到/作为新分支?然后,我可以在每个分支上重新设置基础,或者我应该只是雪莉挑选所有的提交到一个新的分支,这肯定会起作用,但似乎应该有更好的方法

git checkout Development
git branch demo-features-branch
git checkout demo-features-branch
git merge Feature-Branch1
git merge Feature-Branch2
git merge Feature-Branch3
这将把您的所有分支合并到一个演示分支中,同时保持原始功能分支不变

这将把您的所有分支合并到一个演示分支中,同时保持原始功能分支不变。

有没有办法将分支复制到/作为新分支

将创建一个新的demo features分支,此时与Feature-branch-1相同,因此指向相同的提交提交2

然后,正如您正确猜测的那样,您可以通过重定基址或选择樱桃来获得其他提交

我建议你在这里摘樱桃,配上

git cherry-pick ..Feature-Branch-2
git cherry-pick ..Feature-Branch-3
其中HEAD的范围相当于第一行HEAD..Feature-Branch-2

是否有方法将分支复制到/作为新分支

将创建一个新的demo features分支,此时与Feature-branch-1相同,因此指向相同的提交提交2

然后,正如您正确猜测的那样,您可以通过重定基址或选择樱桃来获得其他提交

我建议你在这里摘樱桃,配上

git cherry-pick ..Feature-Branch-2
git cherry-pick ..Feature-Branch-3

其中HEAD的范围相当于第一行HEAD..Feature-Branch-2

好答案。不是吹毛求疵,但是让我们注意到,您可以使用git checkout-b demo功能分支开发替换前三个命令,以达到相同的效果。我把收银台和分行混在一起。我对答案进行了编辑,这样它实际上可以在W上工作。在我的正常工作流程中,我会在上一个分支的基础上重新设置每个分支的基础,解决基础中的任何冲突,然后我会进行合并-无ff,并创建一个干净的时间线,但事实上:对于演示分支来说,这可能有些过分。我试试这个。回答得好。不是吹毛求疵,但是让我们注意到,您可以使用git checkout-b demo功能分支开发替换前三个命令,以达到相同的效果。我把收银台和分行混在一起。我对答案进行了编辑,这样它实际上可以在W上工作。在我的正常工作流程中,我会在上一个分支的基础上重新设置每个分支的基础,解决基础中的任何冲突,然后我会进行合并-无ff,并创建一个干净的时间线,但事实上:对于演示分支来说,这可能有些过分。我要试试这个。哦,樱桃采摘法很好。如果我在demo features分支上,我会做一些类似git cherry pick development的事情。Feature-branch-2?如果您需要提交以单独提交的形式出现在新分支上,就像它们在旧分支上一样,这就是答案。@nathanvda是的,这是等效的。在本例中,仅将原始提交到功能-2,但将选择开发未知的。樱桃选择技巧很好。如果我在demo features分支上,我会做一些类似git cherry pick development的事情。Feature-branch-2?如果您需要提交以单独提交的形式出现在新分支上,就像它们在旧分支上一样,这就是答案。@nathanvda是的,这是等效的。在本例中,仅将原始提交到Feature-2,但将选择开发未知。