Git学习07--撤销修改

  • 1.未add,未commit
    在上一篇中我们修改了myTeam.txt,未commit,正在就要commit 时突然发现末尾处多了一个bu健康的网址,估计是不小心copy进来了。,好在及时发现了。手动删除后用git status 看下状态。
git status
Git学习07--撤销修改_第1张图片
status.png

从图中发现git 告诉我们我们还可以用下面的命令来撤销工作区的修改。

git checkout -- ...

撤销工作区的修改包括这几种情况:
1.myTeam.txt修改后未放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
2.myTeam.txt修改后已放到暂存区后,且又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
PS:git checkout -- file 命令中的-- 很重要,没有-- ,就变成了“切 换到另一个分支”的命令,关于分支我们后面再讲。

git checkout -- myTeam.txt

文件内容果然恢复了原貌。

  • 2.已add,未commit
    继续修改myTeam.txt, 已git add 后准备commit ,结果又发现在末尾处有个bu健康的网址。
http://www.***1024.cc

惨了,赶紧git status 看下


Git学习07--撤销修改_第2张图片
status2.png

上图中Git同样告诉我们,用命令git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区,再用git status 查看一下

  git reset HEAD myTeam.txt
  git status
Git学习07--撤销修改_第3张图片
reset.png

现在暂存区是干净的,工作区有修改,还记得怎么丢弃工作区的修改吗?

git checkout -- myTeam.txt
git status
Git学习07--撤销修改_第4张图片
checkout.png

一切都OK了。

  • 总结
  • 1.修改后 未add(添加到暂存区) 需要撤销修改时:
    a.git checkout -- myfile.txt 或 手动删除工作区修改
    b.工作区 : clean 暂存区: clean
  • 2.修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:
    a.git checkout -- myfile.txt (将暂存区恢复到工作区)
    b.暂存区有第一次的修改需要commit
  • 3.修改后 add了(未commit),需要撤销修改时:
    a.git reset HEAD myfile.txt (将暂存区修改删除)
    b.此时工作区的修改还未撤销,git checkout -- myfile.txt (撤销工作区修改)
  • 4.修改后 add并commit了,需要撤销修改时:
    a.git reset --hard HEAD^ (版本回退)

_本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) _
转载自【宝宝巴士SuperDo团队】原文链接: http://www.jianshu.com/p/fd635b8a65b8

你可能感兴趣的:(Git学习07--撤销修改)