我通過Eclipse使用git。我創建了一個新文件,並對現有的版本化文件進行了更改。我承諾並試圖提出更改,但與現有版本文件發生衝突。我無法解決它,所以我最終很難重置回提交之前。這解決了衝突,但也刪除了我創建的新的,未版本控制的文件。有什麼辦法讓文件恢復嗎?我不認爲硬重置會影響未版本控制的文件。未版本化的文件丟失在git硬重置
1
A
回答
4
git reset --hard
不會影響未版本控制的文件,但是一旦您將新文件添加到索引並提交它不再受版本控制,重置爲沒有該文件的提交將會丟失它。您可以通過重置爲添加該文件的提交來重新獲取它。運行git reflog
;你會得到這樣的輸出:
7d6d2bd [email protected]{0}: reset: moving to HEAD~1
4aaf64d [email protected]{1}: commit: new
[email protected]{1}
是你的新提交; [email protected]{0}
被重新設置爲舊的。再次重置,以提交失去了新的文件復位(在我的例子,這是[email protected]{1}
)前:
$ git reset --hard [email protected]{1}
這將恢復存儲庫是你提交之後,重置前的狀態,因此新文件應該回來。至於你最初想做什麼,有幾種方法可以重置,而不會丟失你在最新提交中添加的新文件。最簡單的方法可能是做一個混合復位,然後結帳:
$ git reset HEAD~1
$ git checkout .
混合復位將離開倉庫是你提交之前 - 這樣你就會有舊文件提交的修改,並且新文件將未版本化。結帳將恢復您對舊文件的更改,但由於新文件現在未版本化,因此它將不再使用
+0
謝謝!完善。 – 2012-04-05 08:18:53
相關問題
- 1. 本地化文件丟失
- 2. git clean後恢復丟失未版本控制的文件-d -f
- 3. git的重置一些丟失的文件
- 4. 在git push後複製未版本化的文件
- 5. 用本地版本丟失的替換遠程git回購.git
- 6. Git忽略和未版本化的本地文件
- 7. 文件丟失與soapcpp2版本2.8.1
- 8. git rebase blob重置後丟失了變化
- 9. 如何處理版本化文件的自定義配置? - git
- 10. 是git重置 - 如果合併失敗,硬件是否必要?
- 11. git合併後丟失的文件
- 12. 一些本地文件在git push後在遠程丟失
- 13. Git還原或硬重置
- 14. git重置後文件未恢復--hard
- 15. 撤消Git拉沒有丟失以前未發現的本地文件
- 16. 丟失的git存儲變化
- 17. ZenCart丟失文件位置
- 18. Dll Microsoft.VisualStudio.QualityTools.CommandLine.dll 10.0.0.0版本丟失
- 19. GCC 4.2版本丟失
- 20. libpng版本1.5.14丟失endif
- 21. Git合併後丟失文件
- 22. Git:如何將工作文件重置爲其索引版本?
- 23. 硬重置後Git分支在哪裏?
- 24. VC C++:lib文件在發佈版本中丟失
- 25. 重組項目文件夾後丟失了git歷史記錄
- 26. 最小化窗口時文本丟失
- 27. 崇高的文本文件欄丟失
- 28. 指針丟失在發佈版本
- 29. Git版本1.9.3推失敗
- 30. git lfs丟失外部硬盤上的引用
'git reset --hard'不應影響未版本控制的文件。你確定你在提交之前沒有將它添加到索引中嗎? – 2012-04-05 07:49:03
正如我所說的提交到現有的文件,是的,我也承諾新的文件。是的,我做到了。 – 2012-04-05 07:54:54
我的意思是我加入了索引。 – 2012-04-05 07:55:49