1 撤销add添加的多余文件
git reset filename //撤销add到缓冲区的部分文件
2 撤销commit的多余文件
git log //先使用查看已经提交的commitId节点
git reset commit_id //(回退到上一个提交的节点,代码还是原来你修改的,即在上一次版本的基础上,加上你已经修改的内容)建议使用这个
或者使用下面:
git reset –hard commit_id //(回退到上一个commit节点, 代码也发生了改变,即与上一次版本一模一样)
3 撤销push到远程库之后的方法
git revert HEAD //撤销前一次 commit
git revert HEAD^ //撤销前前一次 commit
git revert commit-id //(撤销指定的版本,撤销也会作为一次提交进行保存)
注:此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交,版本会递增。
即1-2-1。2代表误交的内容,1代表还原的内容。
顺便提一句:
如果commit注释写错了,只是想改一下注释,只需要:git commit --amend 此时会进入默认vim编辑器,修改注释完毕后保存就好了。
4 删除push远程仓库后的某个文件
第三点我们只是将整个项目再远程仓库进行回退,而不能单个删除。所以我们这点就是删除远程仓库的单个文件。
git rm --cached config.json // --cached代表不删除本地文件,只删除远程,去掉则连本地文件也删除。实际上本地文件已经被删除时,只要仓库还有,该命令也是能正常使用。加上-r表示删除文件夹。
git commit -m 'config.json'
git push origin dev // dev为分支名
上面的删除单个文件的流程,实际上和添加文件到远程库是一样的,只不过add换成了rm。