4
A
回答
3
正如在「Git Internals - Git Objects」所描述的,每次更改一個文件的內容,並把它添加到緩存中時,你做一個:
git hash-object -w test.txt
它存儲到存儲的對象。
我只是做了兩件git add
連續爲一個文件,接着是:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git>gfind -mmin -10 -print
.
./index
./objects/4f
./objects/4f/76d586459ec6ffc42257bb4c61d5422051cb10
./objects/61
./objects/61/24401794e7fee613f5a56593a0a8a059b2627a
(注意-mmin
參數來查找,因爲只有最後10分鐘修改過的文件)
我可以列出的那些相同SHA1每個git add
與後:
git rev-parse :0:abstractNode_test.go
參見git rev-parse
(和「What does git rev-parse
do?「):在索引中添加文件僅爲階段0(階段1,2和3在合併期間用於記錄,仍在索引中,共同的祖先,源和目標版本)。
如果我存儲這兩個斑點的內容:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo>
git cat-file -p 4f76d586459ec6ffc42257bb4c61d5422051cb10 > a
git cat-file -p 6124401794e7fee613f5a56593a0a8a059b2627a > b
(注意我是如何連接具有路徑的其餘部分的BLOB路徑的「4f/
」部分,以獲得完整的SHA1)
a
和b
之間的差異確實給了我添加到同一文件索引的額外位數。
另一個(我認爲更容易)的方式:
git fsck --lost-found
。
搖晃的斑點物體纏繞在.git/lost-found/other/
之內,並且已經是cat-file -p-ed
。
你確實會發現以前的所有git都是在最後一個git添加之前做的,而最終的那個git最終還是提交了。
在我的情況下,只有一個出現了:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other>dir
Volume in drive C has no label.
Volume Serial Number is D866-48E1
Directory of C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo\.git\lost-found\other
25/01/2014 17:31 <DIR> .
25/01/2014 17:31 <DIR> ..
25/01/2014 17:31 16 873 4f76d586459ec6ffc42257bb4c61d5422051cb10
相關問題
- 1. 分階段文件在Git
- 2. 的git:第一階段只新文件
- 3. git status - >顯示將在子目錄中添加(分階段)的文件
- 4. 如何僅使用git分階段創建新文件?
- 5. Git不會提交分階段更改
- 6. git命令添加/階段修改的文件只在文件夾中
- 7. 在git中存在分階段更改時強制不合並
- 8. 如何部分階段與LibGit2Sharp文件?
- 9. 如何在提交過程中的不同階段在git中刪除文件
- 10. 「git add」。是不是在階段區域添加文件
- 11. 在階段中處理壓縮文件
- 12. Git分段文件存儲在哪裏?
- 13. 階段只使用git添加刪除的文件
- 14. 恢復已刪除的git文件,github中的文件n刪除未分階段
- 15. 如何禁用自動階段Git中
- 16. git submodule在階段 - 如何刪除?
- 17. 智能自動完成分階段git文件名,與difftool一起使用
- 18. GIT源樹合併開發分支到階段分支衝突
- 19. MySQL groupby分階段
- 20. 開發階段的Git流程
- 21. GIT中:僅階段修改的文件,而不是增加或刪除的
- 22. 不能變基:你有不分階段變化的git
- 23. 我可以在git中檢索已經創建,分階段,從未提交但隨後刪除的文件嗎?
- 24. Makefile文件在鏈接階段
- 25. 在包階段創建zip文件
- 26. 在Xcode Build階段推薦文件夾?
- 27. 中的R-Studio使用Git:不能修改階段代碼文件
- 28. git的添加/階段和提交單個文件在一個去
- 29. AS3 - PrintJob的 - 印刷階段或階段的一部分
- 30. 恢復的三個階段:分析階段,重做階段和最終撤銷階段
@BleedingFingers:謝謝! – ThangNguyen
@Beding ingFingers不正確。暫存的文件被添加到對象存儲中,如果沒有提交,它們就會變成未被引用的文件。他們可能會被找回,但問題是如果你想去那個麻煩(即你的生活/工作是否依賴它) –
@NevikRehnel:我們如何能夠恢復它? – ThangNguyen