我们通常提交代码的一般流程是:git add --> git commit --> git push
,添加到暂存区 --> 提交到git库生成版本号 --> push到远程仓库,以供他人可以使用。这是一个完整且顺利的流程。
但是实际开发中,如果出现某些问题,需要撤销一些提交的代码(回退到某个版本),就可以使用 git reset
命令。
reset
命令有git reset
和git reset --hard
两种,区别在于是否保留修改的文件。
使用 git log
查看版本号
reset
命令还需要指定参数,即指定版本号,回退到指定版本。
首先,使用 git log 查看版本号。
commit d6db2bd55351013205312675797eda030fb99a77
Author: ...
Date: Tue Nov 23 17:20:32 2021 +0800
test merge_changes
Change-Id: Ifd6b97c1d88183b4c1125ff31c3e2117101669e5
commit a4c68330a06981ef740cc6ef8e01b4e7fe17d071
Author: ...
Date: Tue Nov 23 16:20:43 2021 +0800
test submit failed
Change-Id: I816254734ad03e7a28dc824f12c41ad080857e50
commit 之后的一串字符就是 commit-id,即所谓的版本号。
git reset——回退,保留已修改的文件
例如,当你在本地修改完一个文件之后,使用 add 和 commit 提交了该文件,使用 git status 查看此时的状态是
$ git status
位于分支 ft/zou
您的分支领先 'origin/ft/zhangbo' 共 1 个提交。
(使用 "git push" 来发布您的本地提交)
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
此时,你想放弃这次提交,回退到某个版本,使用 git log 查看历史提交记录。