Git view commit history
After using Git to submit several updates, or cloning a project, if you want to review the submission history, we can use the git log command to view it.
For our operations in the previous chapter, use the git log command to list the historical commit records as follows:
$ git log commit 88afe0e02adcdfea6844bb627de97da21eb10af1 Merge: 14b4dca d7e7346 Author: w3cschool <w3c@w3cschool.cc> Date: Sun Mar 1 15:03:42 2015 +0800 Merge branch 'change_site' Conflicts: test.txt commit 14b4dcadbdc847207651d5a9fae0d315057f346e Author: w3cschool <w3c@w3cschool.cc> Date: Sun Mar 1 14:53:15 2015 +0800 新增加一行 commit d7e734640da06055e107eaf29cf350b3f1de1c2c Author: w3cschool <w3c@w3cschool.cc> Date: Sun Mar 1 14:48:57 2015 +0800 changed the site commit 556f0a0637978097b82287ac665a717623b21f3f Author: w3cschool <w3c@w3cschool.cc> Date: Sun Mar 1 14:40:34 2015 +0800 removed test2.txt
We can use the --oneline option to view a concise version of the historical records.
$ git log --oneline 88afe0e Merge branch 'change_site' 14b4dca 新增加一行 d7e7346 changed the site 556f0a0 removed test2.txt 2e082b7 add test2.txt 048598f add test.txt 85fc7e7 test comment from w3cschool.cc
What this tells us is the development history of this project.
We can also use the --graph option to see when branches and merges occurred in history. The following is the same command, with the topology map option enabled:
$ git log --oneline --graph * 88afe0e Merge branch 'change_site' |\ | * d7e7346 changed the site * | 14b4dca 新增加一行 |/ * 556f0a0 removed test2.txt * 2e082b7 add test2.txt * 048598f add test.txt * 85fc7e7 test comment from w3cschool.cc
Now we can more clearly see when work is forked and when it is merged.
You can also use the '--reverse' parameter to display all logs in reverse.
$ git log --reverse --oneline 85fc7e7 test comment from w3cschool.cc 048598f add test.txt 2e082b7 add test2.txt 556f0a0 removed test2.txt d7e7346 changed the site 14b4dca 新增加一行 88afe0e Merge branch 'change_site'
If you only want to find the submission log of a specified user, you can use the command: git log --author. For example, for example, if we want to find the part submitted by Linus in the Git source code:
$ git log --author=Linus --oneline -5 81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory 3bb7256 make "index-pack" a built-in 377d027 make "git pack-redundant" a built-in b532581 make "git unpack-file" a built-in 112dd51 make "mktag" a built-in
If you To specify a date, several options are available: --since and --before, but you can also use --until and --after.
For example, if I want to see all commits in a Git project that are three weeks old and after April 18th, I can do this (I also use the --no-merges option to hide merge commits) :
$ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges 5469e2d Git 1.7.1-rc2 d43427d Documentation/remote-helpers: Fix typos and improve language 272a36b Fixup: Second argument may be any arbitrary string b6c8d2d Documentation/remote-helpers: Add invocation section 5ce4f4e Documentation/urls: Rewrite to accomodate transport::address 00b84e9 Documentation/remote-helpers: Rewrite description 03aa87e Documentation: Describe other situations where -z affects git diff 77bc694 rebase-interactive: silence warning when no commits rewritten 636db2c t3301: add tests to use --format="%N"
More git log commands can be viewed at:http://git-scm.com/docs/git-log