#撤銷指定檔案
git checkout --
# 撤銷所有
git checkout --
.
git checkout – . 丟棄全部,也包括:新增的檔案會被刪除、刪除的檔案會恢復回來、修改的檔案會恢復。
請務必記得 git checkout --
是乙個危險的命令。 你對那個檔案在本地的任何修改都會消失——git 會用最近提交的版本覆蓋掉它。 除非你確實清楚不想要對那個檔案的本地修改了,否則請不要使用這個命令。
#撤銷所有
git reset head .
#撤銷指定檔案
git reset head
這個命令僅改變暫存區,並不改變工作區,這意味著在無任何其他操作的情況下,工作區中的實際檔案同該命令執行之前無任何變化。
撤銷提交修改,即將commit操作撤銷。
#回退最近的一次提交,即將本次提交撤銷,回到暫存區
git reset --hard head^
適用場景:開發過程,需求邏輯尚未實現,突然要切換版本解決問題,但是本次修改的**並不想提交本地倉庫,使用statsh
命令暫存修改。
#暫存本地修改
git stash
#檢視暫存的資訊
git stash list
#應用最近一次暫存的內容
git stash pop
#應用指定版本的暫存內容1}
#清空暫存棧
git stash clear
適用場景:版本之間的合併,如果合併過程中,出現同檔案同區域**衝突,自己無法判斷應用哪個版本的邏輯,寫該邏輯的同事不在,放棄本次合併。
命令:git merge --abort
命令git reset
- git reset --soft: 將分支回退到指定提交,工作區維持現狀不變,暫存區會在現有基礎上增加該commit之後的提交。
- git reset --mixed: (預設操作)將分支回退到指定提交,暫存區也被同步為該指定提交,工作區保持不變。
- git reset --hard: 將分支回退到指定分支,暫存區和工作區都會被同步為該指定的提交。
git reset後的三個引數回退程度是依次遞進。
soft最輕微,它不會重置當前工作區和暫存區,只會將回退版本後續的提交加到暫存區。
mixed會改變暫存區,使它和回退版本同步。
hard會重置工作區和暫存區,使它和回退版本一致。
/*
git reset --soft target
*/working index head target working index head
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
-a b c c a b c
a b c a a b+c a
/* git reset --mixed target
*/working index head target working index head
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
-a b c c a c c
a b c a a a a
/* git reset --hard target
*/working index head target working index head
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
-a b c c c c c
a b c a a a a
git 所有撤銷 回退命令
git add 後撤銷 撤銷所有add檔案 git reset head 撤銷單個add檔案 git reset head filenamegit commit 後撤銷 只回退commit的資訊,保留修改 git reset soft head 徹底回退到上次commit版本,不保留修改 git r...
Git基礎系列 撤銷 回滾
撤銷一次commit head 1 git reset soft head 1git reset hard head 1git commit amend執行了git reset hard head,回滾 執行了add和commit,可回滾。圖4.1 提交log 圖4.1中,head 為各個執行的命令...
Git 撤銷 回滾操作
workdir進行add操作將當前修改同步到 index,執行commit操作同步到head,執行push上傳到server。git reset head commitid 使用head或者commitid覆蓋index,不影響head和workdir,如果是在commit之後執行這個操作相當於同時...