四、如何做到精准回滚

Git

# 一、如何将在工作区中修改的文件进行回滚(git checkout)

# 恢复单个文件

git checkout -- README.md
1

# 恢复所有文件

git checkout .
1

# 编译器:VSCcode 源代码管理

# 二、如何将暂存区修改的文件进行回滚(git reset)

# 恢复暂存区指定文件到工作区

git reset README.md
1

# 恢复暂存区所有的文件到工作区

git reset
1

# 编译器:VSCcode 源代码管理

# 三、如何将提交后的文件进行回滚(git reset、git revert)

# 将刚提交的版本回滚到未提交状态

git reset HEAD^
git reset @^
1
2

Tips:这个命令是将提交后的文件回滚到工作区的状态,如果修改之后需要再次git add .

# 回滚到以前指定版本

git reset commitID
git revert -n commitID
1
2

# 四、远程机器如何进行回滚

# 方法一:先git reset回滚到本地,然后再强制push到远程。

不建议,可能没有权限,危险操作

git reset commitID
git push -u origin master -f
1
2

# 方法二:先git revert将有问题的版本进行修正,生成新的版本,然后psuh到远程分支。

相当于打补丁,建议使用

git revert -n commitID
# 手动处理冲突
     # if 处理冲突完毕
     git revert --continue
     # if 退出不处理冲突
     git revert --abort
# 进入vim界面 编写commit describe并保存
git push origin master
1
2
3
4
5
6
7
8

# git reset VS git revert

上面回滚中用到了 git resetgit revert 两种方法,下面进行一下分析:

比较 相同点 不同点
git reset 可以进行回滚操作 git reset回滚之后commitID后面的版本就没有记录了。
如果想要回滚到未来节点,要知道未来节点的commitID
所以在回滚前最好先知道当前的commitID
git revert 可以进行回滚操作 git revert回滚操作之后,会进行文件的手动去留,
然后新生成一个版本号,之前的提交还是在的。
更新时间: 2021-09-15 12:03