2013-02-04 51 views
1

我知道這已經被問了一堆的時間,但我的問題似乎略有不同GitHub的非快速向前錯誤

To https://github.com/sr/foo.git 
08a86ab..3d1ece2 master -> master 
! [rejected]  y_dev -> y_dev (non-fast-forward) 
error: failed to push some refs to 'https://github.com/sr/foo.git' 

好了,所以我需要做的y_dev一拉,這是我嘗試:

git pull origin y_dev 
From https://github.com/sr/foo 
* branch   y_dev -> FETCH_HEAD 
Already up-to-date. 

這使我困惑。我認爲拉應該爲我解決這個問題,但有一些我不理解。解釋/修復讚賞

+0

爲了幫助調試,您可以運行兩個分支git的日誌,看看是否真正有分支機構之間的任何差異。所以'git log y_dev'和'git log remotes/origin/y_dev' – gsingh2011

+0

是的,在y_dev中引入了一堆更改 –

回答

2

您正在將分支y_dev拖到您當前的結賬分行中,這很可能是master。因此,您實際上並未將y_dev與您的git-pull保持同步。

嘗試:

git checkout y_dev 
git pull origin y_dev 
git push origin y_dev 
+0

謝謝,我來到了相同的實現。不幸的是,由於局部變化,我無法檢出y_dev,所以我必須先把它們藏起來。另一個我認爲是'git push'不同於'git push origin master'的後綴,後者是我需要的 –

+0

另一個pro-tip,你可以用'git push origin y_dev:master'將一個本地分支推送到一個具有不同名稱的遠程,你可以用git push origin + y_dev:master'來壓縮上游分支。對後者要小心。 –