git revert和git reset的区别

原文:http://blog.csdn.net/koffuxu/article/details/6731876

git revert 是撤销某次操作,此次操作之前的commit都会被保留

git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区

具体一个例子,假设有三个commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

当执行git revert HEAD~1时, commit2被撤销了

git log可以看到:

commit1:add test1.c

commit3:add test3.c

git status 没有任何变化

如果换做执行git reset --soft(默认) HEAD~1后,运行git log

commit2: add test2.c

commit1: add test1.c

运行git status, 则test3.c处于暂存区,准备提交。

如果换做执行git reset --hard HEAD~1后,

显示:HEAD is now at commit2,运行git log

commit2: add test2.c

commit1: add test1.c

运行git st, 没有任何变化

另外:

git revert <commit log string>是撤消该commit,作为一个新的commit。

时间: 2024-11-07 09:18:15

git revert和git reset的区别的相关文章

git revert VS git reset

最近在网上搜索git revert 和git reset 的用法对比,实际操作的时候,发现根本行不通,自己摸索了下,记录下这篇文章. git revert:回退某次提交,并重新提交,相当于代码恢复修改前,但是服务器上有两次提交log: git reset:回退某次提交,同时回退修改log,但是修改内容回退到本地暂存区,由用户确定丢弃(checkout)或者重新提交. 假设当前有3个commit,git  log如下: commit3: add test3.c commit2: add test2

git revert与git reset

共同点:此次提交的代码会被退回到暂存区 不同点: git revert:撤销某次操作,用新的commit去标记旧的commit失效,即抵消操作.git log中会有一次提交的commit,有一次撤销提交的commit git reset:撤销某次提交,将HEAD回退,即删除新的commit.git log中没有新的commit 注:日后继续merge以前的老版本时,因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现.

git reset --hard和git revert命令

git reset --hard和git revert命令 git误操作时可以用git reset –hard 去撤销这次修改, 但是这样做也有问题,可能在之前本地有没有提交的修改也都消失了,这种情况下,可以尝试git revert命令. 一 git reset的使用 reset是指将当前head的内容重置,不会留任何痕迹. Sets the current head to the specified commit and optionally resets the index and work

git revert 用法

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交    * git revert HEAD                  撤销前一次 commit    * git revert HEAD^               撤销前前一次 commit    * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次

git reset、git checkout和git revert的区别

这三个git命令都是用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于commit层面,还可以作用于file层面Reset在commit层面,reset通过移除当前分支的一些节点来实现版本回滚; 拥有mixed(默认).soft.hard三个参数:例如:$git reset <commit id> 使用mixed方式回退到指定版本 $git reset --soft <commit id> 使用soft方式回退到指定版本 $git reset --hard <commi

代码回滚:git reset、git checkout和git revert区别和联系

git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为它们非常相似,所以我们经常会搞混,不知道什么场景下该用哪个命令.在这篇文章中,我们会比较git reset.git checkout和git revert最常见的用法.希望你在看完后能游刃有余地使用这些命令来管理你的仓库. Git仓库有三个主要组成——工作目录,缓存区和提交历史.这张图有助于理解每个

关于git reset和git revert之前的区别

很多时候,git新手容易误操作,比如,在levelIISZ-1.4.dev分支下,运行了git pull idc cpp-1.0的结果,这样做麻烦很大,经常导致maven项目格式不正确,这个时候,可以用git reset --hard 去撤销这次修改但是这样做也有问题,可能之前本地的,没有提交的修改,都消失了.可以尝试git revert命令 reset是指将当前head的内容重置,不会留任何痕迹. git reset --hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样.

Git 相关问题分享,git reset与git revert的区别?

1.如果我在git add 后想要撤销操作,该怎么做? 使用 git rm --cache [文件名/ *]或者 git reset HEAD, 为什么这个命令也会有效果呢,实际上reset将 HEAD指针指向的提交复制到了暂存区,所以看起来暂存区像是没有东西. 这里可以扩展一下:Git 分为三颗“树”: 当我们在工作区修改了时,git add 命令会将文件复制到暂存区,git commit 之后会将index中的内容保存为一个永久的快照.然后创建一个指向该快照的提交对象,最后更新master分

辛星浅析git reset和git revert

很多时候,我们有了误操作,这个时候就需要回退功能的出现,我们可以使用git reset和git  revert这两个功能. git  reset是指将当前head的内容重置,不会留任何痕迹.比如git  reset  --hard   HEAD~3会将最新的3次提交全部重置,就好像没有提交过一样.而--soft和--mixed.--hard会分别重置working  tree和index.HEAD. git   revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存.