由於之前自己推代碼的時候操作失誤,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區)會回退到某個版本,代碼會改變。