Git常见工作场景

撤销更改

场景1

当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

# “哎,又有新需求,修改代码”
# “咦,改乱了,这个逻辑好复杂,重新理一下逻辑,重头来过”
$git checkout -- file

场景2

当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作(git checkout -- file)。

# “新需求,修改代码”
# “嗯,对,可以了”
$git add file

# “哦,NO,不对,这里不对”
$git reset HEAD
$git checkout --file

场景3

已经提交了不合适的修改到版本库时,想要撤销本次提交,那就需要版本回退了,不过前提是没有推送到远程库。

circle-info

1、回到过去,用git log可以查看提交历史,以便确定要回退到哪个版本。

2、回到未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

删除

  • rm file,如果你用rm删除的文件,就相当于只删除了工作区的文件,如果需要恢复,直接使用 git chekout -- file就可以

  • git rm file,如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,相当于执行了以下两条命令:

    需要先 git reset HEAD <file>,然后再git checkout -- <file>

  • git checkout -- file其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以还原

最后更新于