GIT:如何将提交和推送的更改从一个分支包含到一个全新的分支?

时间:2016-11-18 19:58:32

标签: git

我有一个分支(从master创建)(branch_a),有几个提交和推送。现在有没有办法将所有这些变化都包含在我即将创建的全新分支(来自Master)(branch_b)中?

git checkout master
git checkout -b branch_a
Now in branch_a i do some work(x,y,z)
git add .
git commit -m 
git push

现在,

git checkout master
git checkout -b branch_b
Now in branch_b

如何将我的作品(x,y,z)包含在branch_b中,然后提交并推送它?

由于

3 个答案:

答案 0 :(得分:1)

如果只需要来自branch_a的x,y,z提交(在master之上),则从该分支创建一个新分支。它与branch_a相同。

如果branch_a包含您不想要的其他一些工作,那么您的可能性很小。

  • 从branch_a

  • 中的master和cherry-pick提交创建新分支
  • 从branch_a创建新分支并在(历史上)第一次提交之后执行交互式rebase,然后弹出以后不需要的提交 (这将重写你的历史 - sha1哈希)

如果您在执行此任务时遇到问题,请参阅详细信息,或参考有关樱桃挑选和交互式rebase的其他答案。

答案 1 :(得分:0)

最快捷的方法是在branch_b创建branch_a

$ git checkout -b branch_b branch_a

这是两个命令的简写

$ git checkout branch_a
$ git checkout -b branch_b

我发现第一个有用,因为它输入较少。

请注意,master并不特别。它只是一个分支名称。这意味着,无论您在任何文档或示例中看到master,都可以将其替换为任何其他分支。

答案 2 :(得分:0)

  

如何将我的工作(x,y,z)包含在branch_b中,然后提交并推送它?

如果你需要的只是从branch_a获得所有更改并将其放在branch_b上。你可以创建第二个brach FROM branch_a。

喜欢:

git checkout -b branch_b branch_a  

这将从branc_b创建一个全新的branch_a并自动切换到branch_b。只需提交并稍后推送。