git檢視提交歷史並進行程式碼回退的方法
阿新 • • 發佈:2019-01-01
那麼如何檢視一個檔案所進行過的提交呢?
在git下來的原始碼目錄下,執行git log 檔名 即可檢視到有關此檔案的所有提交;
例如:
[email protected]:~/plugins/automount$ git log gsd-manager.c
commit 28810e41dbdd2f68fd0cc863455b908aab9eb695
Author: xxxx <[email protected]>
Date: Thu Jun 12 04:34:58 2014 +0800
modify for blank cd
commit 55445cd02800408c8004acb629d4c6f934c3d6ce
Author: xxxx < [email protected]>
Date: Thu Jun 5 01:25:55 2014 +0800
update
commit 39929d344466c026635908fb6edf73b6eab649f6
Author: xxxx <[email protected]>
Date: Wed Jun 4 12:00:49 2014 +0800
disable error msgbox.
commit bbc272347cbaaa798b39d25b108bd332bbf1a795
Author: xxxx <[email protected] >
Date: Tue Apr 15 17:39:50 2014 +0800
add for bug 8888
從上面可以看到對於gsd-manager.c檔案來說,進行過3次提交,而我們現在要回退到第一次修改後的時候的樣子(主要是原始碼要恢復到第一次提交時的版本)。
那麼如何回退呢?
回退的命令為git reset;
而git reset命令格式為:
git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
其中各個選項的簡介如下:
-q, --quiet be quiet, only report errors
--mixed reset HEAD and index
--soft reset only HEAD
--hard reset HEAD, index and working tree
--merge reset HEAD, index and working tree
--keep reset HEAD but keep local changes
mixed和soft都不會恢復原始碼,而hard和merge才會恢復原始碼到對應的commit。
那麼上面的檔案要恢復到第一次提交的版本的話,那麼執行的命令為:
git reset --hard bbc272347cbaaa798b39d25b108bd332bbf1a795
其中bbc272347cbaaa798b39d25b108bd332bbf1a795為第一次提交的提交號;
當然git reset這個操作也會造成其他檔案在第一次版本的原始碼的回退。
在git下來的原始碼目錄下,執行git log 檔名 即可檢視到有關此檔案的所有提交;
例如:
[email protected]:~/plugins/automount$ git log gsd-manager.c
commit 28810e41dbdd2f68fd0cc863455b908aab9eb695
Author: xxxx <[email protected]>
Date: Thu Jun 12 04:34:58 2014 +0800
modify for blank cd
commit 55445cd02800408c8004acb629d4c6f934c3d6ce
Author: xxxx <
Date: Thu Jun 5 01:25:55 2014 +0800
update
commit 39929d344466c026635908fb6edf73b6eab649f6
Author: xxxx <[email protected]>
Date: Wed Jun 4 12:00:49 2014 +0800
disable error msgbox.
commit bbc272347cbaaa798b39d25b108bd332bbf1a795
Author: xxxx <[email protected]
Date: Tue Apr 15 17:39:50 2014 +0800
add for bug 8888
從上面可以看到對於gsd-manager.c檔案來說,進行過3次提交,而我們現在要回退到第一次修改後的時候的樣子(主要是原始碼要恢復到第一次提交時的版本)。
那麼如何回退呢?
回退的命令為git reset;
而git reset命令格式為:
git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
其中各個選項的簡介如下:
-q, --quiet be quiet, only report errors
--mixed reset HEAD and index
--soft reset only HEAD
--hard reset HEAD, index and working tree
--merge reset HEAD, index and working tree
--keep reset HEAD but keep local changes
mixed和soft都不會恢復原始碼,而hard和merge才會恢復原始碼到對應的commit。
那麼上面的檔案要恢復到第一次提交的版本的話,那麼執行的命令為:
git reset --hard bbc272347cbaaa798b39d25b108bd332bbf1a795
其中bbc272347cbaaa798b39d25b108bd332bbf1a795為第一次提交的提交號;
當然git reset這個操作也會造成其他檔案在第一次版本的原始碼的回退。