Git-在功能分支重基后推送
我有一份git回购协议,目前我在feature分支工作 我有这样的想法:Git-在功能分支重基后推送,git,git-branch,gerrit,branching-and-merging,Git,Git Branch,Gerrit,Branching And Merging,我有一份git回购协议,目前我在feature分支工作 我有这样的想法: dev: ---1--2--3-- \ fb: --f1 当我在处理我的特性分支时,发生了更多对dev的提交,所以我重新对它进行了调整,现在我提交的内容发生了变化 dev: ---1--2--3--4--5---- \ fb: --f1(another) 因此,现在我无法将其推送到
dev: ---1--2--3--
\
fb: --f1
当我在处理我的特性分支时,发生了更多对dev的提交,所以我重新对它进行了调整,现在我提交的内容发生了变化
dev: ---1--2--3--4--5----
\
fb: --f1(another)
因此,现在我无法将其推送到远程功能分支,因为SHA无效。I无法强制推送,因为服务器禁止推送
那么,在这种情况下,正确的工作流程是什么?我应该怎么做 例如,您可以执行以下操作之一:
- 删除远程分支,然后推送本地分支
- 将本地分支推送到新命名的远程分支
- 撤消重基并执行合并
- 说服存储库宿主允许强制推送,然后强制推送您的本地分支
- 我的建议是
将远程/dev合并到本地/fb
或删除远程/fb
,然后使用git历史推送本地/fb
- 撤消重设基础并将远程/dev合并到本地/fb
# undo rebase: reset your local/fb with remote/fb $ git checkout fb $ git reset --hard origin/fb # merge and push to remote/fb $ git pull origin dev $ git push origin fb
$ git push origin --delete fb # delete remote/fb branch $ git push origin fb
- 删除远程/fb分支,然后将您的本地/fb与历史一起推送
# undo rebase: reset your local/fb with remote/fb $ git checkout fb $ git reset --hard origin/fb # merge and push to remote/fb $ git pull origin dev $ git push origin fb
$ git push origin --delete fb # delete remote/fb branch $ git push origin fb