2013-03-15 202 views
91

我做了一個git pull並出現錯誤「以下工作樹文件將被合併覆蓋...請在合併之前移動或移除它們」。要解決這一點,我做了以下git reset --hard origin/master?是什麼意思?

git fetch 
git reset --hard origin/master 

現在,當我做混帳拉,它說一切都交給date.I想知道當我運行這些命令到底發生了什麼。我知道git fetch從遠程倉庫獲取更改,但不將它們合併到本地倉庫。

git reset --hard origin/master是什麼意思?它是如何工作的?

回答

176
git reset --hard origin/master 

說:扔掉我的所有演出和未分級的變化,忘記在我目前的本地分行的一切,並使其完全一樣origin/master

在運行命令之前,您可能想問這個問題。通過使用與「硬重置」相同的詞語來暗示破壞性。

+5

你可以使用'git reset --hard HEAD @ {1}'來撤銷這個動作。 'HEAD @ {1}'因情況而異,因此建議您在'git reflog'中搜索它。 – 2013-03-15 12:19:12

+0

請注意,@ NilsWerner撤消移動的方法不會恢復分階段和非分離更改。這些都消失了。 – 2013-03-15 13:14:26

+1

仍然可以使用'git fsck --lost-found'找到分段文件,但它們不會附加到它們的原始文件路徑,並且可能很難分類。 – 2013-03-15 14:11:03