使用git 管理代碼比較方便。當代碼提交後發現問題時,想要回滾,要怎麼做呢?
git 有 revert 和 reset 兩種方式。但用途並不一樣:
git revert 撤銷
git reset 回退。
例子:
如果先後做了3次提交 commitA、commitB、commitC,分別改了A文件、B文件、C文件。
如果在git中查看
-
commitC
-
commitB
-
commitA
當前是commitC。
撤銷:使用git revert
-
git revert commit-id
-
// 其中,commit-id是目標commit的log代號,就是每次提交會自動生成的很長一串的字符代號,取前7位即可
想要撤銷B文件的更改
git revert commitB
想要撤銷C文件的更改
git revert commitC
所以git revert 是撤銷某次commit的更改,和其他commit無關。
代碼出問題了,想要回滾到之前版本怎麼辦?
回滾:使用git reset
git reset --hard HEAD~n
其中 HEAD 表示當前位置,即最後一次提交。
回滾到往前幾次的提交呢? 例如,
回滾到前一次
-
git reset --hard HEAD^ // ^表示往前一次
-
或
-
git reset --hard HEAD~1
回滾到前2次
-
git reset --hard HEAD^^ // ^表示往前一次
-
或
-
git reset --hard HEAD~2
回滾到前100次
git reset --hard HEAD~100