Git 學習筆記 06 - 撤銷修改
注:本文參照的是廖雪峰老師的Git教程
如果修改的内容時錯的,想撤回,這時候按照不同的時期需要執行不同的操作;
1. 要修改的内容不在暫存區和版本庫
-
一種是 readme.txt 自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀态;
-
一種是 readme.txt 已經添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀态。
這兩種回退就是回退到最近一次 git commit 指令送出或者是 git add 指令添加進 Git 管理時的狀态。
這個時候如果想撤銷回來可以使用指令:
指令中的git checkout -- file
很重要,沒有--
,就變成了“切換到另一個分支”的指令,後面學習分支管理中會再次遇到--
指令。git checkout
注: file 是檔案名 -- 不是注釋,是一個符号。
簡單描述:
就是你修改了檔案,但是沒有使用 git add 指令添加進 Git 管理,你想舍棄這次修改,可以使用這個指令。
還有一個就是你先是使用了一次 git add 指令添加進 Git 管理;但是你還沒有使用 git commit 指令送出,這時你又進行了一次修改,但是這次修改還沒有使用 git add 指令添加進 Git 管理;然後你又不想要第二次的修改了,也可以使用這個指令,但是這個指令隻能撤回你的第二次的修改,第一次的取消不了;如果想取消第一次修改,看下面第二條。

2. 要撤銷的内容已經加入了暫存區但還未送出到版本庫。
如果你修改了檔案,然後使用 git add 指令添加進 Git 管理;,但是還未送出,這時你想撤銷這次修改的内容。
這時可以使用指令
注:
<file>:檔案名
用指令
git reset HEAD <file>
可以把暫存區的修改撤銷掉(unstage),重新放回工作區,
這時候,如果你想要舍棄這次修改可以按上面的操作舍棄。
3. 要撤銷的内容已經送出到版本庫,但是還沒有推送到遠端倉庫
版本回退 可以解救你。
4. 要撤銷的内容已經推送到遠端倉庫
兄弟,自求多福吧…