是否有可能将变更从一个分支提交到另一个分支。
假设我在BRANCH1中提交了更改,并希望将它们推到BRANCH2。
从BRANCH1中,这样做是否有效:
git push origin **BRANCH2**
然后重置BRANCH1?
是否有可能将变更从一个分支提交到另一个分支。
假设我在BRANCH1中提交了更改,并希望将它们推到BRANCH2。
从BRANCH1中,这样做是否有效:
git push origin **BRANCH2**
然后重置BRANCH1?
当前回答
您已经提交到BRANCH1,并希望在不丢失更改的情况下摆脱此提交? Git重置是你所需要的。 做的事:
git branch BRANCH2
如果你想让BRANCH2成为一个新的分支。如果你愿意,你也可以在最后将它与另一个分支合并。如果BRANCH2已经存在,则省略此步骤。
然后做:
git reset --hard HEAD~3
如果你想重置你已经提交的分支上的提交。这将使用最后三次提交的更改。
然后执行以下操作,将重置后的提交提交到BRANCH2
git checkout BRANCH2
这个来源很有帮助: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
其他回答
当然,尽管它只在BRANCH2的快进或强制时才会工作。这样做的正确语法是
git push <remote> <source branch>:<dest branch>
查看git push手册页上关于“refspec”的描述,了解更多关于它如何工作的详细信息。还要注意,强制推送和重置都是“重写历史”的操作,心脏不好的人不应该尝试,除非你绝对确定你对任何远程存储库和其他拥有同一项目的分叉/克隆的人知道你在做什么。
git init #git远程删除源文件 Git远程添加origin <http://...git> echo "This is for demo" >> README.md git添加README.md git commit -m "初始提交" Git checkout -b branch1 Git分支——list * * * * * * *添加文件 git添加-A git状态 git commit -m "Initial - branch1" Git push——set-upstream origin branch1 #git push origin——delete branch1 #git分支——unset-upstream
当您将代码推到另一个分支时,只需遵循下面的git命令。记住demo是我的另一个分支名,你可以用你的分支名替换。
git push origin master:demo
我用git push origin branch1:branch2命令得到了一个糟糕的结果:
在我的例子中,branch2被删除了,branch1被更新了一些新的变化。
因此,如果你只想把从branch1推到branch2上的更改,试试下面的步骤:
在branch1上:git添加。 git在branch1上提交-m 'comments' 在branch1上:git push origin branch1 在branch2上:git拉动起源branch1 在branch1上:恢复到上一次提交。
@SLaks的答案是小道具,这对我来说基本适用。但是在分支有不同头的情况下。一个方便的方法是使用樱桃。
git登录Branch1与您的更改 复制提交SHA您的更改 Git checkout branch2 -在这里应用您的更改 git选择SHA_OF_COMMIT_FROM_STEP_2