簡體   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