Git 版本回退

    显示从近到远的提交日志。

$ git log

    如果输出的信息太多,加上参数--pretty=oneline。

$ git log --pretty=oneline
4e22fba9454c409bcf363f49089f936cc7e51690 modify file
e400778c94f3ece7c3fffe1a9cdf6677dd04d578 delete file
d70c75b48654b7bdd91db9d93a91d8b7f897b5ac swap file
438d5ec2528107d1c1d6f9dafa7bd7210e620823 Revert "second file"
21974bf6038b90e41690b2f3d7967daad188e4e3 second file
adaab30dd891a7f97eae27f67aa33acaeaa36efb readme file

   其中,字符串“4e22fba...”表示提交的版本号,后面是提交时信息。 

 当前的版本的版本号是“4e22fba...”,现在我们要回退到上一个版本“e400778...”。 

$ git reset --hard HEAD^
HEAD is now at e400778 delete file

    其中,Git用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本HEAD~100

    现在我们发现,回退掉的内容还是有意义的,需要恢复,继续使用git reset命令。

$ git reset --hard 4e22f
HEAD is now at 4e22fba modify file

    其中,"4e22f"是提交版本号的前几位(不需要写全),Git会自定搜索该版本。

    如果不记得版本号,使用命令git reflog显示每一次命令。

$ git reflog
4e22fba HEAD@{0}: 4e22f: updating HEAD
e400778 HEAD@{1}: HEAD^: updating HEAD
4e22fba HEAD@{2}: commit: modify file
e400778 HEAD@{3}: commit: delete file
d70c75b HEAD@{4}: commit: swap file
438d5ec HEAD@{5}: commit: Revert "second file"
21974bf HEAD@{6}: HEAD^: updating HEAD
74f940b HEAD@{7}: commit: delete file
21974bf HEAD@{8}: commit: second file
adaab30 HEAD@{9}: commit (initial): readme file

 

你可能感兴趣的:(Git)