版本回退說白了就是返回某一次操作前的狀態。
首先在新建的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 會顯示提交日誌,但是嫌輸出過多怎麼辦,...