我對git repo做了一些更改並做了一些提交。這是我想要做的,說我的git歷史記錄看起來像HEAD - > c1 - > c2 - > c3 - > c4。 問題 1)現在,如果我還原c1,它是否會還原所有c2,c3,c4?我的理解是隻回覆c1,並保持c2,c3,c4不變。 2)現在我想恢復所有的c1,c2,c3和c4,並移回到HEAD。做這個的最好方式是什麼。Git:恢復舊的提交
1
A
回答
1
恢復將創建一個提交,該提交將撤銷要恢復的修訂的更改。
所以,如果你這樣做:
git revert c1
您將結束:
revertC1 - >(以前HEAD) - > C1 - > C2 - > C3 - > C4 ...
它只會恢復提交更改。
因此,對於您的情況,您要刪除四次提交previos到HEAD:
HEAD - > C1 - > C2 - > C3 - > C4
這是相同的爲:
HEAD - > HEAD〜1 - > HEAD〜2 - > HEAD〜3 - > HEAD〜4
如果您想在當前的提交之前刪除四個提交。你可以做
git revert HEAD~5..HEAD~1
系統會提示您爲每個恢復創建提交消息,也許可以解決衝突。
在你HAVE未按更改,我會做什麼,以保持歷史日誌清潔會區分:
撤消當前提交,並保持代碼的修改
git reset --soft HEAD~1
商店代碼改變
git stash
撤消過去四年提交和刪除代碼更改
git reset --hard HEAD~4
確保我刪除所創建的任何文件和目錄
git clean -di
重新申請從頂部的變化犯下這是我想繼續的情況下,
git stash pop
*解決衝突的一個將會有 當沒有衝突時。提交我的更改
git commit -am "My new changes"
如果準備推送,請按。
git push
只有在您沒有壓下您的更改時纔會這樣。
0
如果您將c1恢復爲c1狀態,但它會創建新的提交(c5),並將所有更改從c4更改爲c1。
[HEAD]--> c1 --> c2 --> c3 --> c4 --> c5 (c1 state)
|__________________________/\
revert
相關問題
- 1. Git如何恢復舊提交
- 2. 從多個git rebases恢復「舊提交」
- 3. 恢復git提交
- 4. GitHub:恢復舊提交
- 5. git恢復已提交的提交
- 6. Git恢復本地提交
- 7. GIT:恢復上次提交?
- 8. 如何恢復到Git中較舊的提交?
- 9. 恢復特定的舊提交
- 10. 恢復git中的多次提交
- 11. Git - 恢復丟失的提交
- 12. 恢復git中的一系列提交
- 13. 恢復Git中的幾個提交
- 14. git:從提交恢復文件
- 15. 恢復Git倉庫/提交等
- 16. 如何恢復本地提交git
- 17. git恢復到某個提交
- 18. 恢復(沒有分支)git提交
- 19. Git + Intellij - 如何恢復本地提交?
- 20. 如何恢復從git提交更改?
- 21. Git合併主無需恢復提交
- 22. 恢復丟失遠程git提交
- 23. 如何恢復初始git提交?
- 24. 如何在git中恢復提交?
- 25. Git根據它恢復一個其他提交的提交
- 26. 從遠程git存儲庫中恢復未提交的提交
- 27. 如何查看項目的git歷史並恢復到較舊的提交?
- 28. Git:如何通過一次提交恢復一系列提交
- 29. 告訴Git提交是否合併/恢復提交
- 30. 無法git克隆後立即恢復到較舊的提交(無需更改)
這是非常有幫助的。謝謝一堆。 – Blanc
很高興我能幫到你。如果這有助於您解決問題,請將其標記爲已接受的答案:D – lebobbi