Git使用 版本回退

2022-09-18 03:51:26 字數 2646 閱讀 8592

c:\users\administrator\documents\github\learngit [master]> git log

commit 06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9

author: tryking <[email protected]>

date: thu mar 10 14:29:22 2016 +0800

add world

commit f4fa07feb10862f0d0d6a44fb88f5ede6ae75771

author: tryking <[email protected]>

date: thu mar 10 13:57:50 2016 +0800

wrote a readme file

git log命令顯示從最近到最遠的提交日誌,我們可以看到2次提交,最近的一次是add world,最早的一次是wrote a readme file。

如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上–pretty=oneline引數:

c:\users\administrator\documents\github\learngit [master]> git log --pretty=oneline

06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9 add world

f4fa07feb10862f0d0d6a44fb88f5ede6ae75771 wrote a readme file

首先,git必須知道當前版本是哪個版本,在git中,用head表示當前版本,也就是最新的提交06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9(這個是commit id,是乙個sha1計算出來的乙個非常大的數字,用十六進製制表示),上乙個版本就是head^,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100。

c:\users\administrator\documents\github\learngit [master]> git reset --hard head^

head is now at f4fa07f wrote a readme file

之後我們可以用 cat 命令檢視readme.txt的內容是不是回退回去的版本

c:\users\administrator\documents\github\learngit [master]> cat readme.txt

hello

我們用 git log 再看看現在版本庫的狀態:

c:\users\administrator\documents\github\learngit [master]> git log

commit f4fa07feb10862f0d0d6a44fb88f5ede6ae75771

author: tryking <[email protected]>

date: thu mar 10 13:57:50 2016 +0800

wrote a readme file

最新的那個版本 add world 已經看不到了!想再回去已經回不去了,怎麼辦?

辦法其實還是有的,只要上面的命令列視窗還沒有被關掉,你就可以順著往上找啊找啊,找到那個add world的 commit id 是06da0ffc8ff…,於是就可以指定回到未來的某個版本:

c:\users\administrator\documents\github\learngit [master]> git reset --hard 06da

head is now at 06da0ff add world

版本號沒必要寫全,前幾位就可以了,git會自動去找。當然也不能只寫前一兩位,因為git可能會找到多個版本號,就無法確定是哪乙個了。

再看看readme.txt的內容:

c:\users\administrator\documents\github\learngit [master]> cat readme.txt

helloworld

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

git提供了乙個命令 git reflog 用來記錄你的每一次命令:

c:\users\administrator\documents\github\learngit [master]> git reflog

06da0ff head@: reset: moving to 06da

f4fa07f head@: reset: moving to head^

06da0ff head@: commit: add world

f4fa07f head@: commit (initial): wrote a readme file

這樣你就可以看到你需要的 commit id 了,放心的回去吧!

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 會顯示提交日誌,但是嫌輸出過多怎麼辦,...