Git副本从一个分支更改为另一个分支

Muk*_*thi 38 git

我是git的新手.我有一个名为BranchA的分支来自主人.我在BranchA中有一些更改(我不会将更改从BranchA合并到master)现在我已经从名为BranchB的主服务器创建了另一个分支.我想要从BranchA到BranchB 的更改.

谁能帮助我如何实现这一目标?

谢谢

roy*_*g86 35

git checkout BranchB
git merge BranchA
git push origin BranchB
Run Code Online (Sandbox Code Playgroud)

如果您打算不将更改合并回master,则可以使用此功能.通常,将所有更改合并回master,并创建新的分支是一种很好的做法.

此外,在merge命令之后,您将遇到一些冲突,您必须手动编辑并修复.

确保您位于要将所有更改复制到的分支中.git merge将采用您指定的分支并将其与您当前所在的分支合并.

  • 提问者想要从BranchA更改为BranchB,但这个答案是将BranchB的更改合并到BranchA.请改正! (4认同)
  • 请注意,这将创建合并提交,而这可能不是您想要的。 (2认同)

Arc*_*hie 30

与其他人建议的不同,您可以将一个分支重新绑定到另一个分支:

git checkout BranchB
git rebase BranchA
Run Code Online (Sandbox Code Playgroud)

这需要BranchB并将其重新加入BranchA,实际上看起来像是BranchB分支BranchA,而不是master.

  • 如果希望将更改从一个分支合并到另一个分支而不打扰主分支,这是正确的答案 (4认同)
  • 合并和变基有什么区别?为什么变基比合并更受青睐? (3认同)
  • @Cody:当合并发生时,“merge”会创建一个新的提交。但是,“rebase”“集成”从其他分支到当前分支的提交。有关更多信息:https://www.atlassian.com/git/tutorials/merging-vs-rebasing rebase 的优点是它有助于保持提交历史记录“更干净”。 (2认同)

C1s*_*sc0 7

将 BranchA 的更改合并到 BranchB。当你在 BranchB 上执行git merge BranchA


小智 7

这是两步过程

  • git checkout BranchB(目标分支是BranchB,所以我们需要在这个分支上的头)
  • git merge BranchA(它将BranchB与BranchA合并.这里你已经在分支B中合并了代码)

如果您想将分支代码推送到远程仓库,那么就行

  • git push origin master(它会将你的BranchB代码推送到远程仓库)


Pan*_*ngh 6

BranchA 的内容复制到BranchB

git checkout BranchA
git pull origin BranchB
git push -u origin BranchA
Run Code Online (Sandbox Code Playgroud)

  • 为什么要添加-u选项? (3认同)