2012-01-17 99 views
3

我目前的分支是my_branch。試圖推動修改到遠程回購我得到:在爲什麼「git push」被拒絕? (「git pull」沒有幫助)

$ git push 
Counting objects: 544, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (465/465), done. 
Writing objects: 100% (533/533), 2.04 MiB | 1.16 MiB/s, done. 
Total 533 (delta 407), reused 0 (delta 0) 
To [email protected] 
    4ed90a6..52673f3 my_branch -> my_branch 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

試圖git pull結果:

$ git pull 
Already up-to-date. 

爲什麼我得到這個錯誤? 我該如何解決此問題併成功執行git push

回答

13

我目前的分支是my_branch。

這就是你的問題。當你拉,Git告訴你,你的分支my_branch是最新的,而不是master,這是origin/master,使快進合併不可能。

爲了推高手,你需要檢查出master並拉。這將合併等待origin/master的更改並允許您推送自己的更改。

git checkout master 
git pull 
# resolve conflicts, if any 
git push 
+2

如果你只是想推動「my_branch」:混帳推起源my_branch。 – ysdx 2012-01-17 22:24:11

+0

只是爲了澄清接受的答案一些:'4ed90a6..52673f3 my_branch - > my_branch'表明'my_branch'已成功更新,但'! [被拒絕]主 - >主(非快進)'表示主分支失敗。這意味着* some refs *沒有被推送到存儲庫,但其他一些*可能已經通過了,比如'my_branch'。 – 2012-01-18 01:12:09

1

[如果你的主分支已經配置變基上拉,那麼你只需要做的主分支拉在其他answerd描述,但在其他方面:]

如果你得到一個非快速轉發的消息,這意味着你只能在現有的提交之上推送提交,但是你正在嘗試執行其他操作。做一個變基上主推(假設遠程調用原點)前:

git checkout master 
git pull --rebase origin master 
git push 

也看到這個問題:git rebase and git push: non-fast forward, why use?

相關問題