Git Historie - git log¶
Das Standardkommando hier: git log
Tipp
Nutzen eines einfachen Dummy-Git-Repo der ProGit-Book-Writer:
Befehl: git clone https://github.com/schacon/simplegit-progit.git
Mit git log ohne weitere Parameter werden alle Commits angezeigt,
was bei größeren Projekten dann mit einem Pager geschieht und zum
Beenden q erfordert.
Für die Anzeige spezieller Commits werden Parameter genutzt.
Patchinfo zu den letzten beiden Commits: git log -p -2
Erkl.: mit Parameter -p für --patch
und -2 für die letzten 2 Commits)
Für weitere Informationen (Statistik): git log --stat
$ git log --stat
commit ca82a6dff817ec66f44342007202690a93763949 (HEAD -> master, origin/master, origin/HEAD)
Author: Scott Chacon <schacon@gmail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the verison number
Rakefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gmail.com>
Date: Sat Mar 15 16:40:33 2008 -0700
removed unnecessary test code
lib/simplegit.rb | 5 -----
1 file changed, 5 deletions(-)
commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gmail.com>
Date: Sat Mar 15 10:31:28 2008 -0700
first commit
README | 6 ++++++
Rakefile | 23 +++++++++++++++++++++++
lib/simplegit.rb | 25 +++++++++++++++++++++++++
3 files changed, 54 insertions(+)
Und für etwas kompaktere Ausgaben: git log mit --oneline-Schalter
$ git log --oneline # Abk. für --pretty=oneline --abbrev-commit
2c0fff5 (HEAD -> master, origin/master, origin/HEAD) .gitignore3 - lets just check in again for clean status und repo
8b90aae .gitignore2 - lets just check in again for clean status und repo
c15b3a6 .gitignore - lets just check in again for clean status und repo
bafdc25 lets just check in again for clean status und repo
636908f Initial commit; First Commit to .git
$ git log --pretty=oneline
2c0fff5041681d70eb909543cd4c1742fcce2f03 (HEAD -> master, origin/master, origin/HEAD) .gitignore3 - lets just check in again for clean status und repo
8b90aae1d35f35ec1782c01a9bc92e3e433f9c98 .gitignore2 - lets just check in again for clean status und repo
c15b3a67b6eaaa983aa40af793a23ab7f830cf05 .gitignore - lets just check in again for clean status und repo
bafdc25f03c5b6ca0a26d4aa4565b095461784c8 lets just check in again for clean status und repo
636908f2b795b68c4c99f978239be5e274bfea05 Initial commit; First Commit to .git
Und dann kann man noch mit dem --format= Schalter arbeiten:
$ git log --pretty=format:"%h - %an, %ar : %s"
2c0fff5 - Joe Brandes, 4 hours ago : .gitignore3 - lets just check in again for clean status und repo
8b90aae - Joe Brandes, 4 hours ago : .gitignore2 - lets just check in again for clean status und repo
c15b3a6 - Joe Brandes, 4 hours ago : .gitignore - lets just check in again for clean status und repo
bafdc25 - Joe Brandes, 4 hours ago : lets just check in again for clean status und repo
636908f - Joe Brandes, 31 hours ago : Initial commit; First Commit to .git
Hinweis
Tabelle mit Format-Parametern im Pro Git Book (PDF, Page 43, Table 1)
Wenn sich später die Commits verzweigen (siehe Branches),
dann ist in Kombination noch --graph praktisch.
Weitere Varianten können zeitliche Abfragen erstellen:
git log --since=2.weeks
Eine Abfrage (aus Pro Git Book zum Git-Git-Repo ;-):
$ git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10-01" --before="2008-11-01" --no-merges -- t/
5610e3b031 - Fix testcase failure when extended attributes are in use
acd3b9eca8 - Enhance hold_lock_file_for_{update,append}() API
f5637549a7 - demonstrate breakage of detached checkout with symbolic link HEAD
d1a43f2aa4 - reset --hard/read-tree --reset -u: remove unmerged new paths
51a94af845 - Fix "checkout --track -b newbranch" on detached HEAD
b0ad11ea16 - pull: allow "git pull origin $something:$current_branch" into an unborn branch
Da lohnt dann sicherlich mal ein Blick in die Hilfe:
git help log - Anm.: bisschen Zeit mitbringen ;-)