git撤销/回滚操作

撤销本地(工作区)修改git checkout

git checkout [文件名]

操作 说明
git checkout [文件名] 撤销对该文件的修改,如果该文件已经通过git add 添加到暂存区,则git checkout [文件名] 则恢复暂存区的内容,要撤销到和当前版本一致,再次执行git checkout [文件名] 则恢复当前git版本内容,如果没有使用git add 添加到暂存区,git chekcout [文件名] 则恢复至和当前版本内容一致
git checkout . 对当前目录下所有的git 托管文件执行修改回滚操作
git checkout * 对git托管目录下所有的git 托管文件执行修改回滚操作

回滚版本git reset

**git reset 主要是通过改变git HEAD 指向不同版本实现回滚操作。
git reset 有三种模式 :
git reset --mixed 默认模式。不加任何参数时会使用该模式。会清空暂存区(即git add 的内容会被清空)
,保留当前本地(工作区)的修改
git reset --soft  保留本地(工作区)和暂存区的修改
git reset --hard  本地(工作区)和暂存区的修改均不保留,完全回滚至指定版本**
操作 说明
git reset HEAD^ 回滚到上一个版本,HEAD 上有多少个^就回退多少个版本,最多回退到最初版本
git reset HEAD~2 ~2代表回滚多少个版本,数字代表回滚的记录数量
git reset [提交id] 回滚到指定的提交版本,提交id可通过git log 查看
git reset [文件名] HEAD^ 回滚指定文件到指定版本,只能使用默认模式,保留工作区修改,回滚版本的文件会添加到暂存区

注意:如果想将通过git reset 回滚的版本推送到远程仓库,使用git push 会提示远程仓库版本超前于当前仓库版本,使用git push -f oring mater:master 命令强制将本地仓库推送至远程仓库。Gitblit 使用超级管理员角色的账户才可以使用git push -f 强制推送。

撤销版本提交git revert

git revert 会撤销一个版本的操作,该版本之前或则之后的操作会被保留,撤销该版本操作后生成一个新的版本。对于文件来讲,如果该提交之后的或之前版本新增的文件均会保留,但是该版本新增的文件则会被删除。对于文件内容来讲,会撤销该版本文件内容的修改,撤销到该版本的先前一个版本内容,如果在该版本之后继续有修改该文件,则使用revert的时候则会提示合并冲突。

操作 说明
git revert HEAD^ 撤销上一个版本提交
git revert HEAD~2 ~2代表撤销上上个版本,数字代表撤销版本的倒数几个版本
git revert [提交id] 撤销当前提交版本的操作

猜你喜欢

转载自blog.csdn.net/yuwusheng18/article/details/120054452