5.2 撤消操作
- · - ·
在任何一个阶段,你都有可能想要撤消某些操作。这里,我们将会学习几个撤消你所做修改的基本工具。注意,有些撤消操作是不可逆的。这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。
还原已修改的文件
使用 restore
如果一个文件在本地修改了,但不需要提交它,要如何把它还原到修改前的内容呢?其实运行 git status
会告诉你如何做。
git restore 文件1 文件2
使用 checkout
还原文件除了使用 restore 命令之外还有一种方法,就是使用 checkout
命令重新检出文件。
git checkout -- 文件1 文件2
取消暂存的文件
有时本地测试时临时修改了一些文件,这些文件的改动并不需要提交,但这时你习惯性的执行 git add .
把所有改动全部放到了暂存区。
使用 restore
这时你就需要把已暂存的文件取消暂存, git status
命令也会告诉你做法。
根据提示我们可以使用下面的命令取消暂存的文件。
git restore --staged 文件1 文件2
使用 reset
除了使用 restore 还可以使用 reset 命令。
git reset HEAD 文件1 文件2
覆盖上一次提交
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有 --amend
选项的提交命令来重新提交。
git commit -am "复了一些内容"
git commit -m "修复了一些内容" --amend
上面的命令执行后在 log 里面只会出现“修复了一些内容”这一条提交记录,不会出现“复了一些内容”。
撤回 Commit
上面说到的撤回都是还是提交的撤回,如果已经提交到的 git 仓库还能撤回吗?当然可以。
# 用法
git reset [选项] [要撤销的位置]
# 撤销上一个commit,但不撤销add
git reset --soft HEAD^
# 撤销到N个commit,但不撤销add
git reset --soft HEAD~N
# 撤销上一个commit和add,但不删除代码
git reset --mixed HEAD~1
# 撤销上一个commit和add并删除代码
git reset --hard HEAD^
# 撤回到指定commit
git reset commitid
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/Git系列教程/git-tutorial-5-2-revert-commit