Git 中撤销修改的场景

Git中撤销修改的场景

git中有四个区间来分隔修改记录(注意git存储的修改记录,并不是文件):

工作区——暂存区(git add 但是未commit的部分)——仓库(已经git commit 的部分)——远程仓库(已经git push的部分)

1、撤销工作区内容

当工作区修改需要撤销时:

a、如果是新增文件,仓库中没有版本记录,即untracked file;

使用git clean -f 清除;

1 git clean -f

b、如果是已经在版本库中存在的文件,使用checkout来检出仓库中版本到工作区

1 git checkout filename

2、撤销暂存区内容

如果已经使用git add 添加到了暂存区,使用reset撤销暂存区

1 git reset HEAD filename

3、回退到仓库中上一个版本的提交

已经提交到仓库的版本也是使用reset来回退,和暂存区的区别就是加了一个--hard参数

1 # 回退到上一个版本
2 git reset --hard HEAD^
3 # 回退到上上个版本
4 git reset --hard HEAD^^
5 # 回退到上100个版本
6 git reset --hard HEAD~100

4、回退到仓库中指定版本的提交

使用指定的commit_id回退到指定版本

1 git reset --hard 777b7eb

还可以使用revert进行回退:

1 # 还原到上一个版本
2 git revert HEAD
3 # 还原到某个特定的版本
4 git revert commit_id

注意:revert和reset的区别在于:revert会生成一个新的commit版本,而reset不会生成新的commit

原文地址:https://www.cnblogs.com/Zhanxueyou/p/12807598.html