关于git撤回、撤销代码的几种方式,撤回add,撤回commit,撤回push,git reset 和 git revert 的区别

关于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就行。

  1. git reset --mixde commitid 和第一种情况一样,默认不写mixed就是第一种,只末流源码,回退commit和index信息,如果需要提交,还需要执行git add ,和 git commit,
  2. 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到远程的某次提交,用一次新的提交覆盖原来的修改。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容