git回退版本


真實測試案例:
1、可以通過git log查看當前版本指向
2、然后 git reset --hard HEAD~1(也可以是其他退回語句) 退回一個版本
3、可以通過git log再次查看,指向應該變為上一個版本了
4、直接git push origin 分支 --force強推,因為就算commit也會提示讓你pull代碼,這是不行的
其實兩步就可以完成:第一步:退回版本,第二步:強推上去就可以了


一、git reset退回指令分為兩種

  1、git reset --soft
  表示只是改變了HEAD的指向,本地代碼不會變化,我們使用git status依然可以看到,同時也可以git commit提交

  2、git reset --hard
  表示改變HEAD指向的時候,同時改變本地源碼,不僅僅指向變化了,代碼也回到了那個版本時的代碼

 

二、兩者的語法一樣:

  (1)HEAD相當與當前、HEAD~1 退回上一個版本、HEAD~2 退回上兩個版本、、、以次類推
    git reset --hard HEAD~1 /或者/ git reset --soft HEAD~1
  
(2)通過版本號進行退回指定版本, git log 或者 git reflog 可以查看當前的版本指向和版本號
    git reset --hard 版本號 /或者/ git reset --soft 版本號

 

三、退回之后:

  1、如果使用--soft回退的
    
(1)使用git log或git reflog驗證下,可以看到HEAD已經指向上一個commits了
    (2)再使用git status看看,發現代碼還在緩存區中
        這時候就好辦了,我們選擇很多,可以直接修改代碼,再commit,也可以取消git add 命令

  2、如果使用--hard回退
    
這時候需要直接commit,推送到遠程庫中就行

  (push推送,改變遠程倉庫的版本時,會因為版本差異問題而無法推送,
    使用指令: 
git push origin 分支 --force  強制推送至遠程分支,就大功告成)

  注意:1、兩者退回后只是改變的本地,無法影響遠程庫,需要push到遠程庫
     2、回退后因為遠程庫中未改變,拉取代碼時會拉取最新代碼覆蓋本地

 


免責聲明!

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



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