2013-06-03 129 views
10

我對git相當陌生,在過去的2個月裏我一直在做一個小型項目,並且一直在推動沒有問題的bitbucket。幾天前,我壓縮了我的項目文件夾(因爲我不得不重新安裝我的Linux操作系統),現在在重新安裝Linux操作系統後將其解壓縮。git拒絕推送非快速轉發

所以,現在,我去了我的項目文件夾,保持愉快地工作,終於做到了:

git add -A && git commit -m "modified code" && git push origin master 

..這是我平時做..

,我也得到:

To https://[email protected]/johnsproject/proj.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://[email protected]/johnsproject/proj.git' 
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. 

我看過幾個SO問題,他們建議使用強制標記-f - 但我不確定是否應該這樣做。

p.s:我在主分支 - 這是我回購的only分支。

如果有人能指出我在這裏正確的方向,真的很感激。

謝謝。

+0

'合併遠程更改(例如'git pull') 提示:在再次推送之前。「您是否試圖拉? – Bob

+0

我試過這個,但是我得到'* branch master - > FETCH_HEAD 正在更新74f5f2e..06e5112 錯誤:您對本地的下列文件所做的更改將被合併覆蓋: 請提交您的更改或隱藏它們,然後才能合併' – JohnJ

+0

ok)然後提交你的修改並再次運行'git pull' – Bob

回答

14

在推送之前,您必須提取中央存儲庫中的更改。 做

git add -A 
git commit -m "my local changes" 
git pull 

解決任何衝突。 然後

git push 

另外,如果你在本地沒有有價值的修改,您可以創建回購的新克隆,並開始工作從那裏:

git clone https://[email protected]/johnsproject/proj.git new_repo_dir 
+0

當我做git pull的時候,我好像得到了'* branch master - > FETCH_HEAD 正在更新74f5f2e..06e5112 錯誤:你對本地文件的修改如下將被合併覆蓋: 請在提交您的更改或隱藏它們,然後才能合併。# – JohnJ

+0

@JohnJ好的,請遵循建議。首先提交本地修改。然後'git pull'並解決任何衝突。 –

8

嘗試做

git pull origin master 
git add -A 
git commit -m "modified code" 
git push origin master 

您的本地存儲庫可能與遠程存儲庫不同步。

+0

試圖用egit - 惡夢的一點,但本質上Eclipse的git同步屏幕不斷顯示舊的過時的合併衝突。我不得不停下來重新開始,突然間我的問題解決了。 FWIW。 – Adam

4

我有同樣的問題。我通過使用強制更新的git push -f命令進行了修復。

+0

關於這個解決方案,如果你有任何你沒有在本地提取的新文件,這個過程將會刪除它們。 – zinon

+0

如果你不確定你在推什麼,這不是一個好的解決方案。 – skyrocker

相關問題