1、背景
新手程序员,对git一直玩不明白,一直会commit错自己的代码。
有的时候写自己的东西要push代码回去在另一台电脑上继续写,但是又不想保留自己的中间那次没用的commit,所以就有了这篇文章。
2、介绍
对于我们本地的代码,在commit后发现自己commit操作有误:commit了不想提交的代码/......
这时候只需要:
git reset --soft HEAD~1
注意:这里的soft会保留本地的代码,如果你使用hard,那么本地的代码也会变为上一次commit的内容
如果你手残,不小心把这个操作执行了两次,本来需要的commit也被你撤销了,那么只需要:
git reflog
这个命令可以查看你最近的操作记录和每个提交的SHA-1哈希值。
查看到了SHA-1哈希值,使用如下的命令回滚到你需要的commit:
git reset 哈希值 --soft
此时你会发现,如果你reset的commit还没有push,那么在IDEA中,该commit就消失了,很好,这时候你就已经完成了。
但是,如果你需要撤销的commit已经push了,那么问题就来了:
在IDEA的Git中你依然能看见该commit,但是颜色不一致,代表你本地的代码版本覆盖到蓝色部分
你需要强制push,来覆盖远端的那次commit:
如果你使用IDEA的Push,会有如下提示:
这代表你当前的代码本地版本号小于远程版本号,push需要进行代码的合并
然而我们不希望本地的push与远端不需要的那次commit进行合并,这样会保留那次不需要commit,所以我们应该使用强制push操作来覆盖:
git push origin <本地分支名>:<远程分支名> -f
强制push成功:
此时再查看IDEA的Git,可以看见不需要的commit已经被撤销了:
标签:Git,代码,IDEA,撤销,git,push,commit From: https://www.cnblogs.com/yikolemon/p/17649884.html