假設我有五個修改過的文件,並且我將它們中的兩個放在了commit處(我們稱之爲commit A)。然後,我仍然有三個未提交的更改留給未來的提交。現在假設在將來某個時候我決定將我的工作目錄恢復爲提交A,那麼這些文件的狀態將不會提交給A,而是會被修改。這些變化會丟失嗎?Git階段和提交 - 恢復時未提交的文件會發生什麼?
回答
A git revert
只會修改正在恢復的commitA
的文件。
它不會觸及任何其他文件。
這就是說,這可能是一個好主意,以保存這些文件,只是爲了確保(git stash
)沒有發生任何事情「出錯」。
無論您當前的分段情況如何,提交'A'的'還原'僅會在頂部創建一個新的提交(例如A *),這會反轉提交A的影響。您需要啓動使用乾淨的工作目錄恢復進程(即隱藏或提交修改/暫存的文件)。
好吧,通過將更改恢復到索引來恢復工作。因此,如果沒有進一步確定實際發生的上演和未上演的變化,他們就不會「參與」,這似乎是過分簡單的。 – 2014-09-21 13:10:27
正確。實際上,如果存在任何分步或修改的文件(編輯我的答案),'git revert'將會被阻止。 – FractalSpace 2014-09-21 15:01:58
所以如果我理解正確,我的工作副本將被更改以反映提交A中的更改,但其他文件中的部分工作不會顯示出來?即無法恢復其他文件中的部分工作。這意味着在恢復之後,我的非工作副本並不是早期工作副本的確切複製。 (我明白我的期望可能並不完全可行......) – deepak 2014-09-21 15:38:50
- 1. 恢復git提交
- 2. git恢復已提交的提交
- 3. Git不會提交分階段更改
- 4. Git:恢復舊的提交
- 5. GIT - 每小時(提交和未提交)
- 6. git:從提交恢復文件
- 7. 從遠程git存儲庫中恢復未提交的提交
- 8. 如何恢復工作階段最後在git中提交?
- 9. 恢復未添加/提交的文件
- 10. Git恢復本地提交
- 11. GIT:恢復上次提交?
- 12. 如何恢復未在git中提交的隱藏文件?
- 13. 兩階段提交
- 14. 三階段提交
- 15. 孤立提交會發生什麼?
- 16. 爲什麼Git合併不會自動生成提交和提交消息?
- 17. MSMQ事務未提交/中止時會發生什麼?
- 18. Git更改沒有提交提交和未跟蹤文件
- 19. 從git分支留下的提交會發生什麼-D
- 20. Git根據它恢復一個其他提交的提交
- 21. Git什麼時候提交,推和拉
- 22. 恢復git中的多次提交
- 23. Git - 恢復丟失的提交
- 24. 恢復git中的一系列提交
- 25. 恢復Git中的幾個提交
- 26. 什麼時候使用XA數據源和兩階段提交
- 27. Git:如何通過一次提交恢復一系列提交
- 28. 告訴Git提交是否合併/恢復提交
- 29. Git - 創建文件時發現提交
- 30. Git恢復提交併添加更改,即使在提交更多提交後
如果您在問題中使用特定命令而不是使用其他版本控制系統的隨機術語,會更好。我只能猜測你在說'git reset',你可以通過指定'--soft',' - mix'或'--hard'來明確地選擇索引和工作樹會發生什麼。 – 2014-09-21 15:08:44
同意; 「恢復」在Git中是一個精確的術語,但通常用於表示更多類似於該工具的新用戶的「重置」。你能描述一下你想要做的更詳細的事情嗎? – 2014-09-21 16:03:47
@EdwardThomson在這裏發表評論以及那些由FractalSpace提供的答案,我認爲我已經開始融合到這樣的理解:我一直在想的是git reset,而不是回覆。 – deepak 2014-09-23 13:26:45