git 版本回退
git revert
反做,会创建新的一次提交来覆盖指定的commit id 提交的内容
git reset
删除指定 commit id 的之后的提交,回退到指定的 commit id 的提交
git reset --soft # 将版本库内容保存到 暂存区
git reset --mix # 将版本库内容保存到 工作区
git reset --hard # 删除之后的所有版本
如果 不小心 执行了 git reset --hard commitId
后,相恢复 commitId 时, 可以使用 git reflog
, 这个命令记录了所有的提交历史,不会随着删除
root@z:~/program/code/git-learn/tom-git(master)$ git reflog
a155b56 (HEAD -> master, origin/master) HEAD@{0}: rebase -i (abort): updating HEAD
eb8e529 HEAD@{1}: rebase -i: fast-forward
4a10a98 HEAD@{2}: rebase -i (start): checkout HEAD~5
a155b56 (HEAD -> master, origin/master) HEAD@{3}: rebase -i (abort): updating HEAD
c87dd50 HEAD@{4}: rebase -i (pick): versioin 1
5ef2768 HEAD@{5}: rebase -i (pick): version 2
026cf12 HEAD@{6}: rebase -i (pick): asd
5b0f6ac HEAD@{7}: rebase -i (start): checkout HEAD~5
a155b56 (HEAD -> master, origin/master) HEAD@{8}: commit (merge): merge v
c20941c HEAD@{9}: commit: version 2
74051ca HEAD@{10}: pull: Fast-forward
c545281 HEAD@{11}: commit: asd