因此,這裏有一些背景:我試圖使用hg-fast-export移動存儲庫from Mercurial to git,當我執行最後一步(git checkout HEAD
)時,存儲庫中仍存在更改。具體來說,它表示有4個刪除的文件不應該被刪除。當運行git reset --hard時,分階段更改仍然存在。 git checkout和git stash + git stash drop也一樣。這是怎麼回事?
當我嘗試以下方法,沒有什麼變化:
git reset --hard HEAD
,git checkout .
,git stash && git stash drop
。
我注意到的一件事很奇怪的是,當有人使用這個Mercurial回購時,他們在T_T中間添加了一個git回購。所以有趣的是當我運行git checkout HEAD
(但不是當我運行git checkout .
時),.git
子目錄顯示爲在索引(奇怪)中被刪除。每當我運行git reset
時,這些更改都會消失,但沒有一堆錯誤飛過無效路徑。
最後,這會使存儲庫處於與我第一次運行git checkout HEAD
時所處的狀態相同的狀態。 (至少git的一致!)。
當然,一部分人將mercurial轉換爲git已經經歷了這種情況。任何人都可以分享他們的經驗,堅持git內部的變化嗎?
錯,git checkout HEAD有什麼意義?在'git reset --hard'之後就是'git status'顯示的內容? –
我不確定'git checkout HEAD'除了在運行腳本之前將庫的工作副本更新到HEAD之外,還有什麼意義。 我運行'git reset --hard HEAD'後,剩下的4個文件在索引中被列爲不應該被刪除。它們存在於文件系統上,但如果我運行上述命令,git不會取消刪除操作。 – Caustic
正如我所看到的'git checkout HEAD'是一個無操作。而且你期望它實際上做了些什麼。 –