2013-07-22 30 views
0

我有一個Git回購,我保留最新的代碼。每當我更新本回購中的代碼時,我都會去克隆的生產工作樹上運行git pull以獲取回購的最新代碼。需要用回購的最新版本覆蓋本地修改的文件

今天早上我嘗試了這個,並收到了一個git錯誤,指出我的工作樹有未提交的更改(應該永遠不會發生,因爲所有開發人員都知道不要直接修改此代碼)。我決定不保留本地生產更改,並且我對該文件進行了git結賬以獲取回購的最新信息。這也失敗了一個錯誤。

我嘗試了幾個步驟,他們都失敗了。任何人都可以請幫我弄清楚如何轉儲本地文件的變化,並從回購恢復最新的文件?

有一種可能的併發症:我試圖在有問題的文件上使用git rm,希望我可以從工作樹上刪除它,然後成功從回購庫中取出文件。這也不起作用,現在git rm在回購HEAD上。

+0

將您的分支重置爲上游已知的良好提交。然後做一個結帳,並告訴我們應該發生確切的錯誤。 – mnagel

+0

@mnagel我做了'git reset --hard HEAD^1',然後是'git checkout'沒有錯誤報告。然後我嘗試'git pull ...'並再次獲得本地修改的文件錯誤。 –

回答

2

如果有局部變化,git pull之前執行

git stash 

。使用stash所有更改將被移到一邊,從而允許pull成功。因爲,如你所述,你不需要在本地修改,就可以執行

git stash drop 

將放棄最後的藏匿處。

您還有this答案。

相關問題