git撤销操作

git的撤销操作:reset、checkout和revert
这三个命令都可以用于撤销。
reset和checkout可以作用于commit或者文件,revert只能作用于commit。

工作区有改动,但未add

git checkout readme.txt
git checkout .
git checkout -- readme.txt  // 以防判断成分支

add之后,但未commit

git reset HEAD
git reset HEAD <readme.txt>

commit之后,但未push

git reset

git reset HEAD~2
git reset --hard HEAD~100     //往上100个版本


还有几个参数可选
–soft:只撤销了git commit操作,保留了git add操作
–mixed:撤销了git commit, git add操作
–hard:撤销了至工作区

git revert

git revert HEAD~


git revert <普通commitId>
git revert <merge commitId> -m <parent> 必须选择合并自哪个分支,一般为 1,2,可通过git show <merge commitId> 展示

revert通过新建一个commit来撤销一次commit所做的修改,是一种安全的方式,并没有修改commit history。

push到远程

git reset HEAD~
git push -f

参考链接:Git 之 revert

如果撤销后,发现自己不想撤销了,那么也可以还原

git reflog  // 查看commitId
git reset commitId

远程分支合并后,可以直接在远程撤销分支合并

删除本地untracked files

git clean
git clean -n  //告诉你哪些文件会被删

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理