我對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 rebases恢復「舊提交」
- 2. 恢復git提交
- 3. Git恢復本地提交
- 4. GIT:恢復上次提交?
- 5. 如何恢復到Git中較舊的提交?
- 6. 恢復特定的舊提交
- 7. Git - 恢復丟失的提交
- 8. 恢復git中的一系列提交
- 9. 恢復git中的多次提交
- 10. 如何恢復從git提交更改?
- 11. Git + Intellij - 如何恢復本地提交?
- 12. 恢復丟失遠程git提交
- 13. 如何恢復本地提交git
- 14. Git合併主無需恢復提交
- 15. 恢復Git倉庫/提交等
- 16. 如何查看項目的git歷史並恢復到較舊的提交?
- 17. 告訴Git提交是否合併/恢復提交
- 18. 爲什麼即使在恢復後,Git仍然顯示舊的提交消息?
- 19. 無法git克隆後立即恢復到較舊的提交(無需更改)
- 20. Git-歸檔舊提交
- 21. 恢復提交缺失後的git的復位 - 硬HEAD〜1
- 22. 我們可以說,一個git還原合併舊的提交頂部的恢復提交?
- 23. 從早先的git合併中恢復已恢復提交的文件
- 24. 恢復從主分離的頭部更舊的提交更改
- 25. 在舊提交中恢復文件的一部分
- 26. 恢復舊本地提交中刪除的文件
- 27. 恢復以前的提交後,git是否提交相同的散列?
- 28. 如何刪除Git中的舊提交?
- 29. Git階段和提交 - 恢復時未提交的文件會發生什麼?
- 30. 恢復到最後一次提交的git的分支
這是非常有幫助的。謝謝一堆。 – Blanc
很高興我能幫到你。如果這有助於您解決問題,請將其標記爲已接受的答案:D – lebobbi