git版本回退

2021-08-02 03:13:02 字數 3039 閱讀 8751

版本回退說白了就是返回某一次操作前的狀態。

首先在新建的readme.txt裡輸入內容並已經提交的基礎上執行以下操作:

先修改readme.txt文件:

gitisa distributed version control system.git 

isfree software distributed under the gpl.

然後提交

1 file changed, 1 insertion(+), 1 deletion(-)

git log命令檢視歷史記錄

$ git log                                         //檢視歷史記錄

commit a34058bf6a73828c46b9383ed29656e5dd4ef823

author: amy

date: thu may 25 10:09:32 2017 +0800

commit f973ae85b3ea7d928ba6b14f1b06b37ea1ffcec4

author: amy

date: thu may 25 09:51:40 2017 +0800

add distribed

commit 26a10837cfd1447a34e31a4d1b9c5f6a76337305

author: amy

date: thu may 25 08:57:20 2017 +0800

wrote a readme file

覺得太亂,可以加上--pretty=oneline引數:

$ git log --pretty=oneline

f973ae85b3ea7d928ba6b14f1b06b37ea1ffcec4 add distribed

26a10837cfd1447a34e31a4d1b9c5f6a76337305 wrote a readme file

前面的

一大串類似3628164...882e1e0的是commit id(版本號)

現在退回到之前的版本

1. git必須知道當前版本是哪個版本,在git中,用head表示當前版本,也就是最新的提交3628164...882e1e0(注意我的提交id和你的肯定不一樣),上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100

git reset命令:

$ git reset--hard head^head 

isnow 

atea34578 

adddistributed

使用 cat readme.txt

來讀取檔案內容:

$ cat readme.txt      //讀取檔案內容

gitisa distributed version control system.

gitisfree software.

git log再看看現在版本庫的狀態

$ git log --pretty=oneline

f973ae85b3ea7d928ba6b14f1b06b37ea1ffcec4 add distribed

26a10837cfd1447a34e31a4d1b9c5f6a76337305 wrote a readme file

最新的那個版本

已經看不到了!好比你從21世紀坐時光穿梭機來到了19世紀,想再回去已經回不去了,腫麼辦?

辦法其實還是有的,只要上面的命令列視窗還沒有被關掉,你就可以順著往上找啊找啊,找到那個

commit id

3628164...,於是就可以指定回到未來的某個版本:

$ git re

set--hard 

3628164          //版本號沒必要寫全,前幾位就可以了,git會自動去找

headisnowat

再小心翼翼地看看readme.txt的內容:

$ cat readme.txt

gitisa distributed version control system.

gitisfree software distributed under the gpl.

現在,你回退到了某個版本,關掉了電腦,第二天早上就後悔了,想恢復到新版本怎麼辦?找不到新版本的

commit id怎麼辦?

在git中,總是有後悔藥可以吃的。當你用$ git reset --hard head^回退到add distributed版本時,再想恢復到git reflog用來記錄你的每一次命令:

$ git

reflog

ea34578

head@: reset: moving

togpl

ea34578

head@: commit: add

distributed

cb926e7

head@: commit (initial): wrote

areadme

file

Git版本回退

1 檢視檔案修改歷史 git log 返回的是commit後的操作記錄 git log pretty oneline 也可以使用這個命令格式化日誌輸出 2 版本回退 git reset hard head 回退到上乙個版本 git reset hard head 100 會退到第100個版本,例如現...

git版本回退

先說今天遇到的問題,看到乙個config.php的配置檔案一直在修改的狀態下,但是和遠端的config.php是不一致的,我不需要提交它,但是看它在 modified的狀態下,很不爽,想刪除它,git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了,...

git版本回退

把修改後的版本通過命令提交到版本庫 第一步 git add 檔名 字尾 第二步 git commit m commit id 但是有時候想回去怎麼辦呢?當然萬能的git給我們提供了方法的。我們先檢視一下最近到最遠的提交紀錄操作如下 在命令航輸入 git log 會顯示提交日誌,但是嫌輸出過多怎麼辦,...