今天是 Git 系列課程第六課,上一課我們學會了 Git 本地提交,今天痞子衡要講的是如何查看 Git 本地歷史提交。
當我們在倉庫里做了很多次提交之后,免不了需要回看提交記錄,看看自己之前的改動。有三種 Git 命令可以幫我們查看記錄,痞子衡為大家一一講解:
1. 查看本地歷史提交 git log
git log 是最直接的查看歷史提交的命令,git log 可直接用也可帶參數用,常用的有下面 4 種:
1.1 標準查看 git log
// 顯示所有歷史提交標準信息,每個提交信息包括 SHA 號,作者,時間以及標題 jay@pc MINGW64 /d/my_project/gittest (master)$ git log
commit ea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master) Author: Jay Heng Date: Sun Mar 11 07:46:16 2018 +0800 Add initial platform and update test // 此處略去其他 commit 信息 ...
1.2 精簡查看 git log --pretty=oneline
// 顯示所有歷史提交精簡信息,每個提交信息僅占一行,信息包括 SHA 號以及標題。
jay@pc MINGW64 /d/my_project/gittest (master)$ git log --pretty=oneline
ea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master) Add initial platform and update test fdec58a389772a14f71c391214e90f5c5c00570a Initial application and test 867df08b4e13649e30926b483279dddce32750c2 (origin/master, origin/HEAD) second commit 5fe04f86701d1d0ccb710140d440fa86daab5ffb first commit
1.3 完整查看 git log -p
// 顯示所有歷史提交完整信息,比標準查看多了提交的具體文件改動信息。
jay@pc MINGW64 MINGW64 /d/my_project/gittest (master)$ git log -p
commit ea3925e786f7975265fd43eface72f48af4306dd (HEAD -> master) Author: Jay Heng Date: Sun Mar 11 07:46:16 2018 +0800 Add initial platform and update test diff --git a/app/platform.c b/app/platform.c new file mode 100644 index 0000000..e69de29 diff --git a/app/test.c b/app/test.c index e69de29..70dde01 100644 --- a/app/test.c +++ b/app/test.c @@ -0,0 +1,6 @@ +#include +#include +void test(void) +{ + printf("this is test/n"); +} / No newline at end of file // 此處略去其他 commit 信息 ...
1.4 定制查看 git log --pretty=format:"%opt1 %opt2" --graph
// 按指定格式顯示所有提交歷史信息。
jay@pc MINGW64 /d/my_project/gittest (master)$ git log --pretty=format:"%h %an %s" --graph
* ea3925e Jay Heng Add initial platform and update test * fdec58a Jay Heng Initial application and test * 867df08 Jay Heng second commit * 5fe04f8 Jay first commit
其中 opt 選項列出如下:
%H 提交對象(commit)的完整哈希字串 %h 提交對象的簡短哈希字串 %T 樹對象(tree)的完整哈希字串 %t 樹對象的簡短哈希字串 %P 父對象(parent)的完整哈希字串 %p 父對象的簡短哈希字串 %an 作者(author)的名字 %ae 作者的電子郵件地址 %ad 作者修訂日期(可以用 -date= 選項定制格式) %ar 作者修訂日期,按多久以前的方式顯示 %cn 提交者(committer)的名字 %ce 提交者的電子郵件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式顯示 %s 提交說明
2. 圖形化查看本地歷史 gitk
如果你覺得 git log 這種命令行方式查看與顯示提交記錄不夠直觀,Git 也提供了圖形化方式顯示提交記錄。
jay@pc MINGW64 /d/my_project/gittest (master)$ gitk
3. 查看本地歷史操作 git reflog
無論是 gitk 還是 git log 都僅能查看最終在倉庫存在的提交信息,無法查看被刪除的提交,以及在本地具體 Git 命令操作記錄,這時候你需要使用 git reflog。
jay@pc MINGW64 /d/my_project/gittest (master)$ git reflog
ea3925e (HEAD -> master) HEAD@{0}: am: Add initial platform and update test fdec58a HEAD@{1}: am --abort fdec58a HEAD@{2}: am: Initial application and test 867df08 (origin/master, origin/HEAD) HEAD@{3}: reset: moving to HEAD~1 b69153f HEAD@{4}: am: Initial application and test 867df08 (origin/master, origin/HEAD) HEAD@{5}: reset: moving to HEAD~2 610feaf HEAD@{6}: commit: Add initial platform and update test 589f65b HEAD@{7}: reset: moving to HEAD 589f65b HEAD@{8}: reset: moving to HEAD 589f65b HEAD@{9}: reset: moving to 589f65b 4378dee HEAD@{10}: commit: Initial platform and driver 589f65b HEAD@{11}: reset: moving to 589f65b 1eaa025 HEAD@{12}: reset: moving to HEAD 1eaa025 HEAD@{13}: commit: Initial platform and driver 589f65b HEAD@{14}: commit (amend): Initial application and test 0a0c0fc HEAD@{15}: commit: Initial application 867df08 (origin/master, origin/HEAD) HEAD@{16}: rebase finished: returning to refs/heads/master 867df08 (origin/master, origin/HEAD) HEAD@{17}: rebase: second commit 5fe04f8 HEAD@{18}: rebase: checkout refs/remotes/origin/master aa9db9d HEAD@{19}: commit: second commit 5fe04f8 HEAD@{20}: reset: moving to HEAD 5fe04f8 HEAD@{21}: clone: from git@github.com:JayHeng/gittest.git 審核編輯 黃昊宇
-
Git
+關注
關注
0文章
196瀏覽量
15736
發布評論請先 登錄
相關推薦
評論