无尽的后悔药

世上本没有后悔药,但是有了 Git 之后,也就有了后悔药。

在任何一个阶段,你都可能想撤销某些操作,Git 提供了一系列撤销操作的命令,注意,有些撤销操作是不可逆的。

1. 撤销对文件的修改

$ git checkout -- files

注意:-- 如果不加 -- 则表示切换分支。这个是一个危险命令,除非你确实清楚不想要那个文件了,否则不要使用这个命令。

如果你仍然想保留对那个文件的修改,但是现在仍然需要撤销,使用如下命令:

$ git stash save <files>

此命令表示将修改的文件暂时存储到存档区。等以后可恢复原来的修改。

$ git stash list             # 查看已暂时放到存档区的文件
$ git stash pop [<stash>]    # 取出最后一个或指定的存档区的改动到工作区,然后从存档区删除
$ git stash apply [<stash>]  # 取出最后一个或指定的存档区的改动到工作区,但是不从存档区删除
$ git stash drop [<stash>]   # 删除存档区的临时存档
$ git stash clear            # 清空存档区的临时存档

2. 撤销暂存的文件

$ git reset HEAD <files...>

3. 修改已提交

对于已提交的内容,如注释信息书写错误或者忘记提交某些文件,但是还想让这些文件在一次提交里面,可使用如下命令。

$ git commit <new_files...>  --amend

4. 撤销已提交

$ git reset --soft HEAD^    # 撤销已提交到暂存区域,此时显示未提交状态,修改内容未丢失
$ git reset [--mixed] HEAD^ # 撤销已提交到工作区域,此时显示为暂存状态,修改内容未丢失
$ git reset --hard HEAD^    # 撤销已提交的内容,修改的内容已丢失,慎用此命令

对于已提交的内容,恢复到提交之前的状态。

记住一点,在 Git 中,任何已提交的东西几乎都是可恢复的,可是,任何你未提交的东西丢失后很可能再也找不到了。

results matching ""

    No results matching ""