当前位置:   article > 正文

git回滚

git回滚

git回滚是很常见的操作,但是也很容易出问题,可分为两种情况来看

还未commit

1. 本地修改/删除了文件(并没有使用git add到暂存区),想放弃修改。

单个文件/文件夹:$ git checkout -- filename

所有文件/文件夹:$ git checkout .

(删除的文件使用此命令会被恢复)

2. 本地新增了文件(并没有git add到暂存区),想放弃修改。

单个文件/文件夹:$ rm filename / rm dir -rf

所有文件/文件夹:$ git clean -xdf     //删除当前目录下所有没有track过的文件和文件夹. 不管他是否是.gitignore文件里面指定的文件夹和文件

( 如果文件已经已经git add到暂存区,并不会删除)

3. 本地修改/新增了文件,已经git add到暂存区,想放弃修改。

单个文件/文件夹:$ git reset HEAD filename

所有文件/文件夹:$ git reset HEAD .

(注意,此时只是回到了git add前的状态,并未把修改抹掉)

已经commit

git reset,回到目标版本,之后的版本会直接消失

$ git reset commit_id,这个id是你想要回到的那个节点,可以通过git log查看,可以只选前6位

(撤销之后,已经commit的修改还在工作区,还需要add,commit,push)

$ git reset --hard commit_id,这个id是你想要回到的那个节点,可以通过git log查看,可以只选前6位

(撤销之后,已经commit的修改将会清除,仍在工作区/暂存区的代码不会清除)

(此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧)

git revert,创造一个与目标版本相同的新版本

$ git revert -n commit_id,这个id是你想要回到的那个节点,可以通过git log查看,可以只选前6位

(撤销之后,还需要commit,push,这里非常容易出现冲突,需要解决)

 

其他

如果要单独回滚一个文件file.txt,可以在文件目录使用git reset commit_id file.txt命令,其他原理与上文相同

 

参考文档

Git撤销&回滚操作,https://blog.csdn.net/ligang2585116/article/details/71094887?utm_source=blogxgwz2

Git恢复之前版本的两种方法reset、revert(图文详解),https://blog.csdn.net/yxlshk/article/details/79944535,(配图来源)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/939822
推荐阅读
相关标签
  

闽ICP备14008679号