2013-02-15 32 views
0

我在GitHub上創建了一個Git存儲庫,也創建了本地存儲庫。首先,我將遠程存儲庫放入本地存儲庫。然後,我添加了一個文件,上演文件,提交它,現在我再次嘗試做推到遠程存儲庫,但它失敗,此消息:使用Git for Windows推送到GitHub時出錯

Pushing to https://github.com/jjenkov/java-utils 
To https://github.com/jjenkov/java-utils 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/jjenkov/java-utils' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我完全新的Git和Github上,所以也許我做錯了什麼。雖然遠程倉庫應該是空的(除了由GitHub生成的自述文件),我已經將遠程倉庫「提取」到本地倉庫。

有誰知道問題是什麼,或者我可以在哪裏閱讀解決方案?

回答

1

遠程倉庫不是空的;它包含您可能通過GitHub Web界面創建的README。你必須把它之前,你可以把它:

git pull --rebase origin master 
git push 

(該--rebase並非絕對必要,但避免了一個醜陋的合併提交。)

0

非快速向前推進意味着遠程master是不是您當地master的祖先。 Git拒絕將其作爲一種安全機制來防止破壞工作。

git log --graph --decorate --pretty=oneline --abbrev-commit --all的輸出將爲您提供存儲庫歷史記錄的圖形化描述。如果你確信你不介意更換或摧毀的是在GitHub上,運行

$ git push --force origin master 

--force選項被記錄爲(帶強調)

-f--force
通常,該命令拒絕更新遠程ref,該遠程ref不是本地ref的祖先,用於覆蓋它。該標誌禁用 檢查。 這可能會導致遠程存儲庫丟失提交; 小心使用它。

爲了保留那裏的內容,您需要在GitHub上重新綁定本地主服務器,然後推送結果。

$ git fetch 
$ git rebase origin/master master 
$ git push origin master 

或只是

$ git checkout master 
$ git pull --rebase 

上面的序列是晴天的情況。您可能需要解決衝突,但根據您的描述看起來似乎不太可能。

+0

後三個命令相當於'pull --rebase'。 – 2013-02-15 19:41:44