git reset是git的回退操作论巍,能夠?qū)it版本退回到commit之前的狀態(tài)躯泰。
git reset --soft HEAD^將git版本回退后只退回了commit的信息谭跨,而退回的信息存到暫存區(qū)诞挨,執(zhí)行commit就可以恢復(fù)碍粥。
image
上圖中commit之前新建了文件囚灼,reset之后文件在緩存區(qū)骆膝,再次執(zhí)行commit之后與之前版本一樣。
而git reset --hard HEAD^會重置暫存區(qū)灶体,并且會將工作區(qū)代碼也回退到這個版本,回退掉的內(nèi)容無法再查找阅签。
image
本圖中commit之前新建了文件,reset之后此文件不見了蝎抽,暫存區(qū)中也找不到該文件政钟,無法恢復(fù)。
git revert 是是=生成一個新的提交來撤銷某次提交樟结,此次提交之前的commit都會被保留养交,在git log中能夠看到日志,而之前的reset是直接退回狭吼,log中看不到日志层坠。
image
圖中能看到Revert “add”。