2013-06-18 26 views
1

爲了調試的目的,將我的存儲庫重置爲拉之前的狀態(我沒有備份)對我很有幫助,尤其是,我想擺脫所有提取的新文件內容。重置本地和遠程分支引用,恕我直言,是不夠的,因爲提取的新文件內容仍然可以在本地存儲庫中。重置爲拉之前的狀態

+0

沒有確切的重複,因爲我也想擺脫獲取的對象,所以新的拉將會再次獲取它們。 –

+0

@ThomasSinger,很難做到這一點,因爲在正常的資源庫中通常會啓用reflog,因此您不僅要恢復每個受影響的分支(遠程跟蹤和本地),還要清除reflog,然後進行積極的運行'git gc'。 – kostix

+0

我同意kostix,它可能不會由於reflog文件的低工作量而完成。當您正在調試時,爲什麼不在之前對存儲庫進行備份? – mstrap

回答

1

您可以執行git reset --hard HEAD以恢復到以前的狀態。但是,如果這是你經常做的事情,並且不想冒着丟失你忘記提交的文件的風險,那麼你就想把它變成一個工作流程。

您可以將所有這些文件保留在您的索引中,並將它們存儲在pull,然後git checkout origin/master以使您的存儲庫處於正常狀態。而不是stash,你甚至可以使用你從你的工作分支中合併/取消合併的分支。

也有工具來幫助處理文件作爲「補丁」對於本地工作區,將永遠不會在同步指標得到...