GIT实操手册 —— 如何做到精准回滚
2020-12-19 本文已影响0人
顽皮的雪狐七七
目录
- 一、如何将在工作区中修改的文件进行回滚(git checkout)
- 恢复单个文件
- 恢复所有文件
- 编译器:VSCcode 源代码管理
- 二、如何将暂存区修改的文件进行回滚(git reset)
- 恢复暂存区指定文件到工作区
- 恢复暂存区所有的文件到工作区
- 编译器:VSCcode 源代码管理
- 三、如何将提交后的文件进行回滚(git reset、git revert)
- 将刚提交的版本回滚到未提交状态
- 回滚到以前指定版本
- 四、远程机器如何进行回滚
- 方法一:先git reset回滚到本地,然后再强制push到远程。
- 方法二:先git revert将有问题的版本进行修正,生成新的版本,然后psuh到远程分支。
- git reset VS git revert
一、如何将在工作区中修改的文件进行回滚(git checkout)
恢复单个文件
git checkout -- README.md
恢复所有文件
git checkout .
编译器:VSCcode 源代码管理
image二、如何将暂存区修改的文件进行回滚(git reset)
恢复暂存区指定文件到工作区
git reset README.md
恢复暂存区所有的文件到工作区
git reset
编译器:VSCcode 源代码管理
image三、如何将提交后的文件进行回滚(git reset、git revert)
将刚提交的版本回滚到未提交状态
git reset HEAD^
git reset @^
Tips:这个命令是将提交后的文件回滚到工作区的状态,如果修改之后需要再次
git add .
回滚到以前指定版本
git reset commitID
git revert -n commitID
四、远程机器如何进行回滚
方法一:先git reset回滚到本地,然后再强制push到远程。
不建议,可能没有权限,危险操作
git reset commitID
git push -u origin master -f
方法二:先git revert将有问题的版本进行修正,生成新的版本,然后psuh到远程分支。
相当于打补丁,建议使用
git revert -n commitID
# 手动处理冲突
# if 处理冲突完毕
git revert --continue
# if 退出不处理冲突
git revert --abort
# 进入vim界面 编写commit describe并保存
git push origin master
git reset VS git revert
上面回滚中用到了 git reset
和 git revert
两种方法,下面进行一下分析:
比较 | 相同点 | 不同点 |
---|---|---|
git reset |
可以进行回滚操作 |
git reset 回滚之后commitID 后面的版本就没有记录了。如果想要回滚到未来节点,要知道未来节点的 commitID 。所以在回滚前最好先知道当前的 commitID
|
git revert |
可以进行回滚操作 |
git revert 回滚操作之后,会进行文件的手动去留,然后新生成一个版本号,之前的提交还是在的。 |