我打算将更改提交到本地“功能”分支并将其推送到相应的远程“功能”分支。但是,相反,我不小心将更改提交到本地“ master”分支,并将更改推送到远程“ master”分支。
如何既撤消推送到“主”(本地和远程)的更改,又将这些更改推送到预期的“功能”分支(本地和远程)?
答案 0 :(得分:1)
听起来像是您在错误的分支上做了一些事情?好吧.....没有那么困难。
结帐本地要素分支。挑选您在主数据库上提交的更改。假设是最后2次提交,然后是git cherry-pick master~2..master
。然后将您的本地功能推送到远程功能。然后将主指针重定向到正确的位置git branch -f master master~2
。然后,以正确的位置推动母版制作:git push -f whatever-remote master
。那应该做。
原始问题的原始答案
我猜你有一个本地分支来解决这个问题,对吗?您误将其推入master的分支。我们称它为分支-a
git push whatever-remote branch-a # if you want the remote branch to be called branch-a as well
git push whatever correct-revision-id:master # revert master to where it was
足够了。
答案 1 :(得分:1)
您需要强制推送到较旧的参考文献:
git push -f origin last_commit:branch_name
然后,您可以将更改推送到功能分支。确保没有其他试图在要删除的提交之上构建的用户。