关于git撤回、撤销代码的几种方式,撤回add,撤回commit,撤回push,git reset 和 git revert 的区别
没有添加到暂存区,就是没有执行 git add
git checkout . 或者 git reset --hard
添加到暂存区,就是执行 git add 了
git reset HEAD . 会撤销回到 工作区
git reset --hard 会彻底撤回,回到原始状态
执行git commit 了
1.git reset commitID 可以撤销,不对代码修改进行撤销,可以继续进行git commit提交修改
2.git reset --soft commitID 可以回退commit,代码属于git add 的那个状态,软重置,只回退commit信息,如果需要提交,继续 commit就行。
- git reset --mixde commitid 和第一种情况一样,默认不写mixed就是第一种,只末流源码,回退commit和index信息,如果需要提交,还需要执行git add ,和 git commit,
- git reset --hard commit 什么都不要了,彻底回到上个版本.
执行 git push 了
git revert commitID 会把此次操作之前和之后的commit都会保留,并把这次撤销作为一次新的commit
git reset 和 git revert 比较
git reset 是还原本地index的状态或者修改本地head的位置,一般适用于,比如我们本地有多个commit,比如1,2,3这时候我们不想要2,3,了,想从1,开始开发,然后新建一个分支,这时候就用git reset ,撤销那两次修改,然后继续开发,只影响本地,不影响远程,可以根据自己的需求选择软重置还是硬重置
git revert 是撤销push到远程的某次提交,用一次新的提交覆盖原来的修改。