【Git学习笔记】撤销修改

来源:互联网 发布:java join() 编辑:程序博客网 时间:2024/05/22 13:44

Git上的任何修改都是有后悔药可吃的。也就是如果你对刚才的修改不满意,想撤销刚刚所做的修改,你都有办法做到。撤销修改之后,你的working directory与repository中的内容就一致了。

不过,根据你的修改是否被add到stage上,这个后悔药的药方也不同。

【药方1】自修改后还没有被放到暂存区。

比如,我们对readme.txt做一下修改,在最后面添加一行:

My stupid boss still prefers SVN.
这时我们看下版本库的状态:

你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改,我们执行下这个命令,然后查看readme.txt的内容:

我们发现readme.txt的内容回到了修改之前。

注意:git checkout -- file命令中的--很重要,没有--,就变成了“创建一个新分支”的命令。

【药方2】已经添加到暂存区后。

如果刚刚的修改,被add到stage上了,那么此时版本库的状态应该是:

输出结果告诉我们,我们可以git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

放回到工作区中之后,我们就可以按照【药方1】吃药了。

执行

$ git checkout -- readme.txt
之后,看下版本库的状态:

可以看到目前的working directory干净了。刚才的修改被撤消了。

【总结】

1、如果readme.txt自修改后还没有被放到stage,执行git checkout -- readme.txt取消修改。

2、如果readme.txt自修改后被放入到stage,先要执行git reset HEAD readme.txt从stage上撤下来,再执行git checkout -- readme.txt取消修改。

1 0
原创粉丝点击