繁体   English   中英

从主人变基时推分支

[英]Pushing branch when rebasing from master

我们是一个由5人组成的开发团队。 我们有一个主分支,每当我们处理新事物时,我们就会创建一个新的分支。 当我们完成更改后,我们将分支推送到GitLab并执行合并/拉取请求,以便它再次与主服务器合并。

我的机器上有一个分支,我已经工作了大约一个星期。 在那一周,主人有变化,所以我在我的分支上执行此命令:

git rebase master

一旦完成,我这样做是为了推动我的新分支:

git push origin some-branch

当我这样做时,我收到此错误:

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

我做它的建议,我做一个git pull origin some-branch 现在,我更改的文件已使用===HEAD>文本进行了修改。 所以我解决了这个问题,并重新开始工作。

然后,我尝试再次执行git push origin some-branch ,并出现完全相同的错误。

为了使它更清晰,某些分支返回的git status

# On branch some-branch
# Your branch and some-branch have diverged,
# and have 3 and 3 different commits each, respectively.

我怎么能解决这个问题,或者我做错了什么?

你应该强制推动你的分支,而不是合并更改。也就是说,在你重组之后使用git push -f

当你执行rebase时,你告诉Git将master的历史重放到你的分支上,然后,你的分支的提交需要在重放的工作之后到位。

改变了该分支的历史记录 ,这解释了为什么你在git status看到分歧消息,但这完全是故意的。 但是,在与远程分支合并时,您的历史混乱; 它现在包含应该永远不存在的合并提交。

下次使用强制推送,但要确保您已重新设置的工作通过测试,无论是冒烟测试,单元/集成测试,还是其他。

您可以尝试为本地更改创建一个存储区,然后再进行拉动...

$ git commit -m "your commit" 
$ git stash
$ git pull
$ git stash apply
$ git push

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM