git回滾線上代碼


    由於之前自己推代碼的時候操作失誤,push代碼的時候沒有push到線上的dev分支,而是push到了線上master分支(主要是因為沒有在命令后寫分支名,直接推到默認master分支上了),覆蓋掉了線上的代碼。在搜索解決辦法的時候,發現網上給的信息大多不夠全,且很多無用。所以在回滾成功之后,寫一下關於回滾的文章。

 

1.如果沒有push上去,可以用git reset 本地回滾到之前的代碼。

 

   git log查看版本號,然后在用git reset + 版本號回滾。

 

2.如果push上去了,已經覆蓋了線上的代碼,就需要先用git revert + 版本號 或者 HEAD(回到上一個push的版本),將線上的代碼回滾

 

  用git push -u origin master:master(可以不寫,默認與分支相同) -f 強制提交。如果沒有-f gitlab會拒絕你的操作。

 

3.git revert 和 git reset 的區別

  (1)git reset命令 
    1.git reset –mixed + 版本號 
      暫存區(add/index區)和提交區(commit區)會回退到某個版本,但代碼不改變。 
    2.git reset –soft + 版本號 
      提交區(commit區)會回退到某個版本,暫存區(add/index區)不會回退,代碼不改變。 
    3.git reset –hard + 版本號 

      暫存區(add/index區)和提交區(commit區)會回退到某個版本,代碼會改變。(推薦)

  (2)git revert命令 

    git revert + 版本號 
      遠程master和本地master都會回退到某個版本。暫存區(add/index區)和提交區(commit區)會回退到某個版本,代碼會改變。


免責聲明!

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



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