NullPointer 发表于 2016-12-16 11:54

Git教程(七)

本帖最后由 NullPointer 于 2016-12-16 11:59 编辑

1、撤销修改
问:什么是撤销修改?
答:比如你把本地文件进行了修改,但是你不想还原为与版本库最新文件的内容,这时候就需要撤销修改。
问:如何撤销修改?
答:利用git checkout -- file命令可以丢弃对工作区的修改。
解释:这里有两种情况:
(1)file修改后还没有放到暂存区,那么执行命令git checkout -- file就会恢复到和版本库中的file一模一样的内容。
(2)file修改后已经放到暂存区,那么执行命令git checkout -- file就会恢复到和暂存区中的file一模一样的内容。
命令中的--很重要,若没有--就变成了“切换到另一个分支”的命令。(后续我会讲解分支概念)
Demo1:
1.1、对hello.txt文件进行修改
1.2、然后用git checkout -- hello.txt命令

1.3、再次查看hello.txt文件内容,发现恢复到了与版本库最新文件内容。

ps:这里细心的童鞋会发现为什么hello.txt文件的“and you”也没了?那是因为在上一节我们演示git管理的是修改而非文件时候写的数据,并没有添加到暂存区也没提交,所以一起被还原了。
Demo2:
1.1、对hello.txt文件进行修改

1.2、然后用git add hello.txt将文件放到暂存区

1.3、再次修改hello.txt文件

1.4、然后用git checkout -- hello.txt命令

1.5、再次查看hello.txt文件内容,发现恢复到了与暂存区最新文件内容。

Demo2视频教程:
http://oi5l9slpi.bkt.clouddn.com/Video_2016-12-16_114213.wmv
问:假如我添加到暂存区但没有commit的内容不想要了,怎么撤销?
答:用git reset HEAD file命令可以把暂存区的内容撤销回工作区,git reset 既可以版本回退又可以撤销暂存区的内容。当为HAED时表示最新的版本。
如何验证是否撤销成功?执行git status命令查看状态。

视频教程:
http://oi5l9slpi.bkt.clouddn.com/Git-07-2.wmv
小结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
2、删除文件
2.1、删除工作区的文件,直接鼠标右键删除。
2.2、删除版本库的文件,需要用git rm file命令。然后在git commit。
若工作区误操作删除了hello.txt文件,不用担心,可以用git checkout -- hello.txt将版本库中的文件检出,但内容与版本库一致。
此步骤无教程,自己按步骤操作,简单。

任意666 发表于 2016-12-16 12:33

很好啊    看起来不错的样子

101MHz 发表于 2017-5-17 09:11

git功能还是很强大的,看每个人写的帖子,都能学到一些新的细节。。。

天使3号 发表于 2018-7-10 11:01

感谢分享。学习git中
页: [1]
查看完整版本: Git教程(七)