git add 撤销_Git各种错误操作撤销的方法

466fcb9f7f5f6b4397d5b31af850f832.png

概述

  • 在平时工作中使用git难免会提交一些错误的文件到git库里,这时候,撤销吧,怕把正确的文件删除了,不撤销重新改又很麻烦,下面,我就从提交的三个阶段,来讲解如何撤销错误的操作。

Git Add了一个错误文件

解决方法

  • 这种情况一般发生在新创建的项目,执行命令:

git add .

命令执行完后发现增加了错误的文件,比如Pycham自动生成的.idea文件夹。比如下图:

5ca9acdbcba625a6d2c4691dcf843097.png

这时候,我想撤销add .idea这个操作,可以这么做:

git reset <file> #撤销指定的文件
git reset #撤销所有的文件

执行完这个命令后,效果如下:

4e7cf63eed48c06c97b60c242052a953.png

可以看到.idea这个目录变成了Untracked了。完美解决。
如果你在执行的时候遇到如下的错误:

fatal: Failed to resolve 'HEAD' as a valid ref.

如果遇到这个错误,就说明你的本地git仓库从来没有执行过git commit操作,导致HEAD指针不存在。这时候你可以通过如下的命令撤销操作:

git rm --cached .   #删除文件
git rm -r --cached . #删除文件和目录

如何避免

  • .gitignore: 把不需要提交的文件增加到这个文件
  • git add : 增加指定的文件,少用点号

Git Commit了一个错误文件

举例

我现在有个文件的状态如下:

bbb66c72649950be1b91d7658baaf3e8.png

执行git diff blog-test.py后结果如下:

bbf2f0769c17fb3b300f2132bcad5a5c.png

可以看到我增加了一行,现在把文件提交到本地仓库:

254b06362639543412726ed964012a8b.png

可以看到,本地以及没有需要提交的文件了。这时候,我发现,这个修改是错误的,我需要撤销这次commit,我该怎么做了?

只撤销commit操作,保留文件

执行命令如下:

git reset HEAD~1

执行完效果如下:

c0947f361c16d67f780299130a46ccdc.png

可以看到,commit被撤销了,但是修改的部分还保留着。完美解决。不信看git log

5488252155781c52efabf87af7930e1f.png

撤销commit操作,删除变化

执行命令如下:

git reset --hard HEAD~1

执行完后效果如下:

7f48b06f479e8ef608fe2172c18e5dcd.png

可以看到,我增加的那一行已经没有了,git log中也没有了那次的提交记录:

c3d5cbd52273f79ed218d68bde9ed2c3.png

完美

如何避免

  • git status: 查看是否有不需要的文件被add进来
  • git diff: 查看文件的变化部分,是否是想提交的

查看更多

Git如何取消最新一次的commit

如何删除分支

好,现在有个很严重的问题,我的分支里代码不用了,现在要删除,怎么整。

分支没有push到远程

删除本地的分支很简单:

git branch -d branch_name

举例截图如下:

796b2ca451cee3ae740abeeee8058235.png

分支已经push到远程

我现在本地和远程都有一个test分支,如下图:

2c63b4fdbc2c3cb6d99d766f21671db5.png

ab9491b21c07cb704b2817ff8ba7caff.png

执行如下的命令删除本地和远程的test分支:

git push origin --delete test
git checkout master
git branch -d test
#git branch -D test 如果有未提交的文件,用它

执行完效果如下:

8cc69ddaa864b53453169f4aa1424c21.png

5d83e34bbdf6eb0465b16a157d75a7da.png

可以看到都删掉了。

总结

出错不可怕,可怕的是你不知道为什么出错以及如何修复错误。所谓亡羊补牢,为时未晚。

为什么不来我的博客逛逛了​www.bugcode.cn

fe8391e05b8e85216b8dc6a2b74a5cab.png
关注我的公众号,获取更多文章
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值