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
还没有评论,来说两句吧...