正确的git方式 - 强制执行特定分支

时间:2018-04-12 15:54:59

标签: git

我需要将分支重新绑定到先前的提交。我能够将我的本地改为所需的提交,现在我需要将其推送到遥控器。

我的遥控器(类似于origin/bugfix/bug12345,我的本地分支是bugfix/bug12345

我已经检查了几个关于强制推送的stackoverflow条目,我读了建议还原而不是rebase,但我绝对需要重新绑定,但我不想搞砸其他任何东西。

我试过了:

git push origin/bugfix/bug12345 bugfix/bug12345

但我收到了这条消息:

fatal: 'origin/bugfix/bug12345' does not appear to be a git repository
fatal: Could not read from remote repository.

我在另一篇文章中读到了:

git push origin master

但是......听起来我正在努力掌握并且我不想推进那个分支

有人可以建议如何推送到origin / bugfix / bug12345 并且仅限于该特定分支吗?

2 个答案:

答案 0 :(得分:2)

命令是

git push origin bugfix/bug12345:bugfix/bug12345

或者如果您已经签出了该分支

git push -f

答案 1 :(得分:1)

您可以结帐到本地bugfix/bug12345分支,然后强行推送到远程(来源)bugfix/bug12345

$ git checkout bugfix/bug12345
$ git push -f origin bugfix/bug12345

或者,如果您的本地分支机构不是bugfix/bug12345&想要强制推送远程的bugfix/bug12345分支,然后按照:

$ git branch    
# local branch is 'master' or else instead of 'bugfix/bug12345' 

$ git push -f origin HEAD:bugfix/bug12345
# push the current branch without thinking about the local name

N.B。: HEAD是当前签出提交的引用(当前本地分支的最新提交)