我有一个分支(从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中,然后提交并推送它?
由于
答案 0 :(得分:1)
如果只需要来自branch_a的x,y,z提交(在master之上),则从该分支创建一个新分支。它与branch_a相同。
如果branch_a包含您不想要的其他一些工作,那么您的可能性很小。
从branch_a
从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。只需提交并稍后推送。