1. 程式人生 > >Git 學習筆記 06 - 撤銷修改

Git 學習筆記 06 - 撤銷修改

Git 學習筆記 06 - 撤銷修改

注:本文參照的是廖雪峰老師的Git教程

如果修改的內容時錯的,想撤回,這時候按照不同的時期需要執行不同的操作;

1. 要修改的內容不在暫存區和版本庫

  1. 一種是 readme.txt 自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
  2. 一種是 readme.txt 已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。

    這兩種回退就是回退到最近一次 git commit 命令提交或者是 git add 命令新增進 Git 管理時的狀態。

    這個時候如果想撤銷回來可以使用命令:

    git checkout -- file
    

    git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個分支”的命令,後面學習分支管理中會再次遇到git checkout命令。

    注:
    file 是檔名
    -- 不是註釋,是一個符號。
    

簡單描述:

就是你修改了檔案,但是沒有使用 git add 命令新增進 Git 管理,你想捨棄這次修改,可以使用這個命令。

​ 還有一個就是你先是使用了一次 git add 命令新增進 Git 管理;但是你還沒有使用 git commit 命令提交,這時你又進行了一次修改,但是這次修改還沒有使用 git add

命令新增進 Git 管理;然後你又不想要第二次的修改了,也可以使用這個命令,但是這個命令只能撤回你的第二次的修改,第一次的取消不了;如果想取消第一次修改,看下面第二條。

撤銷修改練習一

2. 要撤銷的內容已經加入了暫存區但還未提交到版本庫。

如果你修改了檔案,然後使用 git add 命令新增進 Git 管理;,但是還未提交,這時你想撤銷這次修改的內容。

這時可以使用命令

git reset HEAD <file>
注:
<file>:檔名

用命令git reset HEAD <file>可以把暫存區的修改撤銷掉(unstage),重新放回工作區,

這時候,如果你想要捨棄這次修改可以按上面的操作捨棄。

暫存區撤銷修改練習

3. 要撤銷的內容已經提交到版本庫,但是還沒有推送到遠端倉庫

版本回退 可以解救你。

4. 要撤銷的內容已經推送到遠端倉庫

兄弟,自求多福吧…