送給git reset --hard 推送到遠端的后悔葯


本地通過git reset --hard commitId  將版本會退到很久之前的版本

並且執行了 git push origin HEAD --force 推到遠端,想要撤銷本次回退。

此時git log 只能看到回退后版本之前的提交

 

場景一的后悔葯: 本地在回退之前進行過一次pull,代碼是最新的

git reflog 查看本地操作記錄

# git reflog
7d630936e (HEAD -> test, origin/test) HEAD@{0}: reset: moving to 7d630936e363c47a0e82cdbcd11f5cf1244f85ad 20a92df60 HEAD@{1}: reset: moving to HEAD 20a92df60 HEAD@{2}: reset: moving to HEAD

 

前面的7d630936e是提交id,可以通過再一次 git reset --hard 20a92df60 回退

 

場景二的后悔葯:本地在push之前代碼不是最新的,通過git log、git reflog 都只能看到最近一次,其他的看不到了

 

# git reflog remotes/origin/test
7d630936e (origin/test) remotes/origin/test@{0}: update by push 
c4d32bab6 remotes/origin/test@{1}: pull: fast-forward           
ed81ec0ae remotes/origin/test@{2}: pull: fast-forward           
38fb5a355 remotes/origin/test@{3}: pull: fast-forward           
62658da57 remotes/origin/test@{4}: pull: fast-forward           
6b021b2ea remotes/origin/test@{5}: pull: fast-forward           
b3b769b0f remotes/origin/test@{6}: pull: fast-forward           
39c523c0a remotes/origin/test@{7}: pull: fast-forward           
85bd4b280 remotes/origin/test@{8}: pull: fast-forward           
7d630936e (origin/test) remotes/origin/test@{9}: update by push 

 

 

查看遠端的操作日志,取最近一次正常提交commitId進行回退:git reset --hard c4d32bab6

之后推送到遠端:git push HEAD --force

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM