Git 撤銷修改和版本回退

2022-05-24 23:39:11 字數 3435 閱讀 7100

# 撤銷修改是指將工作區中的修改撤銷

git checkout [檔名或路徑]

# 1、撤銷工作區中當前目錄中的所有修改

git checkout .

# 2、撤銷工作區中指定檔案的修改

git checkout -- filename

注意:checkout

命令只能撤銷工作區中的修改,不能撤銷暫存區中的修改

git checkout

命令還有乙個非常重要的作用就是切換分支,可用於分支管理

# 1、切換到指定分支(如果分支在本地不存在,會自動從遠端倉庫拉取)

git checkout dev

# 2、切換分支的同時建立分支

git checkout -b dev

# 版本回退是指將版本庫從當前版本回退到其他版本

git reset -- hard 版本號

有時,我們需要將

git版本回退(還原)到以前的某個版本,可以使用

git reset 命令在

git中,

head

指標指向的是當前版本,也就是最新的

conmit id

,上乙個版本是

head^

,上上個版本就是

head^^

,上50

個版本可以寫作

head~50

# 可以使用下面的命令,回退到上乙個版本

git reset --hard head^

這時,我們再使用 git log 命令檢視版本庫被修改的日誌。卻發現,看不到被回退的版本之後的歷史記錄了。 如果,想再回到最新的版本,怎麼辦?

只要剛剛的命令列視窗沒有關掉,你就可以順著往上面找,直到發現最新的版本號(如

4b2a0c88a2d03675694013ac6a2bd6f55c830cdc

),

# 就可以使用下面的命令還原到指定的版本,版本號(commit id)沒必要寫全,一般寫前七位就夠了,git會自動去匹配:

git reset --hard 4b2a0c8

但是,假如你回退到了某個版本後,把電腦關了。第二天又後悔了,想要恢復到最新版本。

這時,可以使用命令

git reflog

來檢視你的每一次操作日誌,該命令可以輸出對應的版本號的操作記錄。這樣,我們就可以恢復到任意版本了。

語法:git reset options

git reset

有很多可用選項,可以使用命令

git reset -h

來檢視其中最常用的三個選項是:

檢視版本庫的狀態

語法:git status

git status

命令非常有用。它可以檢視版本庫的當前狀態,還可以看到相關操作的提示資訊。

檢視修改

# 如果你修改了工作區中的某些檔案,想要檢視具體更改了什麼內容,可以使用 git diff 命令

git diff .

git diff filename

檢視工作區和版本庫的區別

# 如果你只是修改了工作區,還沒有 git add 到暫存區,想要檢視工作區和版本庫的區別。

# 檢視工作區和版本庫的區別

git diff

上述命令只能檢視到工作區中

已經存在的檔案的修改,如果是新建立的檔案,它追蹤不到。如果修改和新檔案已經

git add

到了暫存區,就需要使用下面的命令來檢視。

檢視暫存區和版本庫的區別

# 如果你修改了工作區,已經 git add 到了暫存區,想要檢視暫存區和版本庫的區別。

git diff --cached

檢視兩個版本之間的區別

如果你修改了工作區,已經

git add

到了暫存區,並且

git commit

到了版本庫。這樣

head

指標就指向了最新的版本。想要比較兩個版本之間的區別。

語法:git diff [

版本號1] [

版本號2]

# 比較兩個版本之間的差異

git diff 4129523 0a7d9af

# 0a7d9af:當前版本號(最新版本號)

# 比較之前的版本和當前版本的差異

git diff 4129523 head

# 比較某個檔案在兩個版本之間的差異

# 比較之前的版本和當前版本的差異的簡寫形式

git diff 4129523

檢視本地的兩個分支的區別

語法:git diff [branch1] [branch2]

# 比較develop分支和master分支的區別

git diff develop master

檢視本地分支和遠端分支的區別

# 對比本地的develop分支和遠端master分支的區別

git diff develop origin/master

檢視版本庫的歷史記錄

如果你想檢視版本庫提交的歷史記錄

,可以使用

git log

命令。

# 檢視版本庫的歷史記錄

git log

# 檢視版本庫的歷史記錄,美化輸出

git log --pretty=oneline

# 檢視版本庫的歷史記錄,只顯示前 5 條

git log -5

git log -5 --pretty=oneline

場景一

# 僅僅是撤銷工作區中的修改

git checkout .

場景二

# 如果你想撤銷工作區和暫存區中的修改。

git reset --hard head

# 簡寫為

git reset --hard

# 如果你僅僅只是想要撤銷暫存區中的修改。

git reset --mixed

# 簡寫為

git reset

場景三

# 如果你想回退到上乙個版本,可以使用下面的命令。

git reset --hard head^

# 檢視當前的版本號,可以使用。

git rev-parse head

說明:完整的版本回退,包含三個要素:

Git 版本回退和撤銷修改

將版本庫回退乙個版本,且這次提交的所有檔案都移動到暫存區 將版本庫回退乙個版本,且這次提交的所有檔案都移動到工作區,會重置暫存區 將版本庫回退乙個版本,會重置暫存區,工作區會回退到這個版本,即之前提交修改的檔案不會存在 git checkout filename注 checkout 命令沒有 的話就...

git撤銷修改和版本回退

由於一直分不請楚如何工作區的修改 沒有add 暫存區的修改 已add未commit 已提交的修改 已commit 所以參考了大佬的部落格抽時間做了乙個整理。工作區就是我們平常 存放的git初始化的目錄。版本庫就是目錄裡的隱藏檔案 git 而版本庫中的stage就是暫存區 git add file 提...

git 撤銷修改和版本回退

檔案只是在工作區進行了修改,還沒有提交到暫存區 未進行 git add 操作 此時可以使用git checkout filename撤銷工作區檔案的修改 效果相當於刪除本地的檔案,重新從遠端倉庫拉取該檔案 檔案在工作區進行了修改,並提交到了暫存區 進行了 git add 操作,未進行 commit ...