git revert和git reset的区别

http://blog.csdn.net/th_gsb/article/details/50247305

http://blog.csdn.net/th_gsb/article/details/50247305


GitHub撤销修改

标签: git撤销回退resetrevert
  1415人阅读  评论(0)  收藏  举报
本文章已收录于: 
  分类:

目录(?)[+]

工作中,难免会遇到编写错误的情况。那如何能撤销修改,使得文件回到修改前的状态呢?下面我们开始讲解如何撤销修改。

【前言】

在讲解前,我们先要清楚撤销修改前,文件在Git中的状态:

1)只做本地修改,未git add

2)修改并git add

3)修改并git commit提交

4)修改并git commit,并且发送到了github

针对以上4种情况,我们看看如果做相应的撤销修改工作。

【撤销“本地修改未git add”的文件】

准备工作:我们先把ReadMe.txt文件内容修改一下,然后使用git status查看一下状态。


撤销步骤:

1)使用git checkout -- ReadMe.txt

2)使用git status查看一下状态,你会发现文件被修改的部分已经恢复到未修改之前了。

【撤销“修改并git add”的文件】

准备工作:我们先把ReadMe.txt文件内容修改一下,然后使用git add命令将修改添加到缓存,然后git status查看一下状态。


撤销步骤:

1)删除本地文件ReadMe.txt

2)使用git checkout -- ReadMe.txt

【撤销“修改并git commit提交”的文件】

准备工作:我们先把ReadMe.txt文件内容修改一下,然后使用git add和git commit提交修改,然后使用git log命令看一下提交记录。


撤销步骤:

1)使用git reset命令,可以撤销本地提交。由于HEAD表示当前版本,所以要恢复到上一个版本的话,在后面加一个“^”符号就可以了。


2)使用git log命令查看一下,应该是退回到上一个版本了


【撤销“修改并git commit,并且发送到了github”的文件】

准备工作:向readme.txt文件中填写我的名字缩写,然后提交并发送到github。使用git log命令查看一下提交历史记录:


撤销步骤:

1)我们通过git log可以看到上一次提交的id为df17865f......,那么我们使用git revert命令撤销本地提交(也可以用HEAD代替本次ID)


2)再使用git log命令查看一下


3)再看一下文件,acd572e5e那次提交确实被撤销了,但提交信息还在,这可能就是git revert和git reset的一个区别吧。






 




http://blog.csdn.net/hudashi/article/details/7664460

http://blog.csdn.net/hudashi/article/details/7664460

http://blog.csdn.net/hudashi/article/details/7664460

git revert和git reset的区别

标签: gitstring
  96693人阅读  评论(7)  收藏  举报
  分类:
原文:http://blog.csdn.net/koffuxu/article/details/6731876
git revert  是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
git reset  是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行 git revert  HEAD~1时, commit2被撤销了
git log可以看到:
revert "commit2":this reverts commit 5fe21s2...
commit3: add test3.c
commit2: add test2.c
commit1: add test1.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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值