git各场景下的撤销

1、撤销工作区的修改(未执行 git add .)

git checkout 文件或目录

2、撤销暂存区的修改(已执行git add . 未执行 git commit)

git  reset HEAD或某一版本号 【可选:文件名】(HEAD指向最近的一个版本,一个commit就是一个版本,版本号可以通过git log指令查询)

注意:git reset有三个参数,--soft、--mixed、--hard,如果不指定,会默认指行--mixed参数,它的意思是将指定版本之后的修改(在本场景中,就是最近一次提交后的修改),都撤回到工作区中,也就是未执行git add的状态。如果加上--hard参数,就会放弃指定版本之后的所有修改,会出现干净的工作区与暂存区(此参数会在下个场景展示实例)。如果加上--soft参数,则会把指定版本之后的修改撤回到暂存区,工作区内容不变。

3、撤销已经执行git commit的修改(真正意义上的版本回退)

git reset 或 git revert

区别:git reset 会修改 git log 的版本历史,如果你回退到了几个版本前,那git log时就会发现你丢失了被回退的版本。而git revert不会修改版本历史,你回退哪个版本,git revert就会新建一个提交,把你要回退版本的修改抵消掉(个人常用 git revert )。

假设已经commit了三次,三个commit号简写如下,需要回退到commit2

commit3、commit2、commit1

git reset的做法 :git reset --hard commit2 ; git log查看 commit2、commit1

git revert的做法:git revert commit3    ; git log查看 commit4、commit3、commit2、commit1

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

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,752评论 1 26
  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 6,276评论 0 18
  • 所以做幻灯片前要先确定自己要做的是哪种PPT,再开始制作。PPT跟word不一样,别是个字就往上面放,特别是演讲型...
    PPT和羊阅读 8,384评论 1 2
  • 平常十点就睡了,今天快一点了还睡不着 可能是被舍友的情绪所感染,怪激动的 可是这跟我有啥关系呢哈哈 还是要剁手剁手...
    步念顾阅读 910评论 0 1
  • 5月6日,前往安化参加面试,这几天将安化黑茶产业相关知识补充下。 1.千年黑茶源自安化。安化是中国黑茶之乡,唐代杨...
    河马先森阅读 1,872评论 0 0