二:撤销(工作区)修改

来源:互联网 发布:马蓉面相 知乎 编辑:程序博客网 时间:2024/05/02 01:34

一.有时候在工作区修改后,还没有提交到暂存区时,想要撤销当前修改,则执行如下命令:

1.git checkout -- file_name

把文件file_name在工作区的修改全部撤回,以下有两种情况

a.文件修改后还没有被放入暂存区,现在撤销修改就回到和版本库一样的状态

b.文件已经添加到暂存区后,又作了修改,现在撤销修改就回到添加到暂存区后的状态


二.有时候修改已经被添加git add到暂存区

1.git reset HEAD file_name

以上命令可以把暂存区的修改撤销掉,重新回到工作区, git reset命令可以回退版本,也可以把暂存区的修改退到工作区

2.git checkout -- file_name

丢弃工作区内容


三.修改已经被commit到了本地库上(版本库)

1.git reset --hard HEAD^ / git reset --hard commit_id

使用上述命令可以回退到某个版本


注意:以上基于没有把本地版本库推送到远端,一旦推送到远端版本库,就无法撤回


四.删除也是一个操作,执行以下命令可以撤销一个删除操作或者在版本库中实际删除

在工作区,先rm file_name,现在工作区和版本库存在差异

rm file_name

git status

存在以下两种情况:

1.确实从版本库中删除该文件

git rm file_name(git rm xxx是删除工作区和暂存区的文件,commit后才会删除版本库的文件)

git commit -m "xxxx"

2.另一种情况是删错了,因为版本库中存在有,所以可以执行恢复

git checkout -- file_name

git checkout是用版本库里的版本替换工作区的版本,无论是删除还是修改,都可以执行恢复



原创粉丝点击