Git
Przeglądanie historii
Szukaj…
Składnia
- git log [opcje] [zakres wersji] [[-] ścieżka ...]
Parametry
Parametr | Wyjaśnienie |
---|---|
-q, - cicho | Cichy, tłumi różnicę wyjściową |
--źródło | Pokazuje źródło zatwierdzenia |
--use-mailmap | Użyj pliku mapy poczty (zmienia informacje o użytkowniku w celu zatwierdzenia użytkownika) |
--dekorować [= ...] | Udekoruj opcje |
--L <n, m: plik> | Pokaż dziennik dla określonego zakresu linii w pliku, licząc od 1. Zaczyna od linii n, przechodzi do linii m. Pokazuje także różnicę. |
- pokaż podpis | Wyświetl podpisy podpisanych zatwierdzeń |
-i, --regexp-ignore-case | Dopasuj wzory ograniczające wyrażenia regularne bez względu na wielkość liter |
Uwagi
Referencje i aktualna dokumentacja : oficjalna dokumentacja git-log
„Zwykły” dziennik Git
git log
wyświetli wszystkie twoje zobowiązania względem autora i skrótu. Będzie to pokazane w wielu liniach na zatwierdzenie. (Jeśli chcesz pokazać jedną linię na zatwierdzenie, spójrz na onlineing ). Użyj klawisza q
, aby wyjść z dziennika.
Domyślnie, bez argumentów, git log wyświetla zatwierdzenia dokonane w tym repozytorium w odwrotnej kolejności chronologicznej - to znaczy najnowsze zatwierdzenia pojawiają się jako pierwsze. Jak widać, to polecenie wyświetla listę każdego zatwierdzenia wraz z sumą kontrolną SHA-1, nazwisko i adres e-mail autora, datę zapisania oraz komunikat zatwierdzenia. - źródło
Przykład (z repozytorium Free Code Camp ):
commit 87ef97f59e2a2f4dc425982f76f14a57d0900bcf
Merge: e50ff0d eb8b729
Author: Brian <[email protected]>
Date: Thu Mar 24 15:52:07 2016 -0700
Merge pull request #7724 from BKinahan/fix/where-art-thou
Fix 'its' typo in Where Art Thou description
commit eb8b7298d516ea20a4aadb9797c7b6fd5af27ea5
Author: BKinahan <[email protected]>
Date: Thu Mar 24 21:11:36 2016 +0000
Fix 'its' typo in Where Art Thou description
commit e50ff0d249705f41f55cd435f317dcfd02590ee7
Merge: 6b01875 2652d04
Author: Mrugesh Mohapatra <[email protected]>
Date: Thu Mar 24 14:26:04 2016 +0530
Merge pull request #7718 from deathsythe47/fix/unnecessary-comma
Remove unnecessary comma from CONTRIBUTING.md
Jeśli chcesz ograniczyć swoje polecenie do ostatniego n
zatwierdzenia dziennika, możesz po prostu przekazać parametr. Na przykład, jeśli chcesz wymienić 2 ostatnie dzienniki zatwierdzeń
git log -2
Dziennik Oneline
git log --oneline
pokaże wszystkie twoje zatwierdzenia tylko z pierwszą częścią skrótu i komunikatem zatwierdzenia. Każde zatwierdzenie będzie w jednym wierszu, jak sugeruje flaga oneline
.
Opcja oneline drukuje każde zatwierdzenie w jednym wierszu, co jest przydatne, jeśli patrzysz na wiele zatwierdzeń. - źródło
Przykład (z repozytorium Free Code Camp , z tą samą sekcją kodu z drugiego przykładu):
87ef97f Merge pull request #7724 from BKinahan/fix/where-art-thou
eb8b729 Fix 'its' typo in Where Art Thou description
e50ff0d Merge pull request #7718 from deathsythe47/fix/unnecessary-comma
2652d04 Remove unnecessary comma from CONTRIBUTING.md
6b01875 Merge pull request #7667 from zerkms/patch-1
766f088 Fixed assignment operator terminology
d1e2468 Merge pull request #7690 from BKinahan/fix/unsubscribe-crash
bed9de2 Merge pull request #7657 from Rafase282/fix/
Jeśli chcesz ograniczyć swoje polecenie do ostatniego n
zatwierdzenia dziennika, możesz po prostu przekazać parametr. Na przykład, jeśli chcesz wymienić 2 ostatnie dzienniki zatwierdzeń
git log -2 --oneline
Ładniejszy dziennik
Aby zobaczyć dziennik w ładniejszej strukturze przypominającej wykres, użyj:
git log --decorate --oneline --graph
próbka wyjściowa:
* e0c1cea (HEAD -> maint, tag: v2.9.3, origin/maint) Git 2.9.3
* 9b601ea Merge branch 'jk/difftool-in-subdir' into maint
|\
| * 32b8c58 difftool: use Git::* functions instead of passing around state
| * 98f917e difftool: avoid $GIT_DIR and $GIT_WORK_TREE
| * 9ec26e7 difftool: fix argument handling in subdirs
* | f4fd627 Merge branch 'jk/reset-ident-time-per-commit' into maint
...
Ponieważ jest to dość duże polecenie, możesz przypisać alias:
git config --global alias.lol "log --decorate --oneline --graph"
Aby użyć wersji aliasu:
# history of current branch :
git lol
# combined history of active branch (HEAD), develop and origin/master branches :
git lol HEAD develop origin/master
# combined history of everything in your repo :
git lol --all
Zaloguj się z wprowadzonymi zmianami
Aby wyświetlić dziennik z wprowadzonymi zmianami, użyj opcji -p
lub --patch
.
git log --patch
Przykład (z repozytorium Trello Scientist )
ommit 8ea1452aca481a837d9504f1b2c77ad013367d25
Author: Raymond Chou <[email protected]>
Date: Wed Mar 2 10:35:25 2016 -0800
fix readme error link
diff --git a/README.md b/README.md
index 1120a00..9bef0ce 100644
--- a/README.md
+++ b/README.md
@@ -134,7 +134,7 @@ the control function threw, but *after* testing the other functions and readying
the logging. The criteria for matching errors is based on the constructor and
message.
-You can find this full example at [examples/errors.js](examples/error.js).
+You can find this full example at [examples/errors.js](examples/errors.js).
## Asynchronous behaviors
commit d3178a22716cc35b6a2bdd679a7ec24bc8c63ffa
:
Wyszukiwanie dziennika
git log -S"#define SAMPLES"
Wyszukuje dodanie lub usunięcie określonego ciągu lub dopasowanie ciągu pod warunkiem REGEXP. W tym przypadku szukamy dodania / usunięcia ciągu #define SAMPLES
. Na przykład:
+#define SAMPLES 100000
lub
-#define SAMPLES 100000
git log -G"#define SAMPLES"
Wyszukuje zmiany w wierszach zawierających określony ciąg lub dopasowanie ciągu pod warunkiem REGEXP. Na przykład:
-#define SAMPLES 100000
+#define SAMPLES 100000000
Wyświetl wszystkie wpisy pogrupowane według nazwiska autora
git shortlog
podsumowuje git log
i grupy według autora
Jeśli nie podano żadnych parametrów, lista wszystkich zatwierdzeń dokonanych na podmiot przekazujący zostanie wyświetlona w kolejności chronologicznej.
$ git shortlog
Committer 1 (<number_of_commits>):
Commit Message 1
Commit Message 2
...
Committer 2 (<number_of_commits>):
Commit Message 1
Commit Message 2
...
Aby po prostu zobaczyć liczbę zatwierdzeń i ukryć opis zatwierdzenia, przekaż opcję podsumowania:
-s
--summary
$ git shortlog -s
<number_of_commits> Committer 1
<number_of_commits> Committer 2
Aby posortować dane wyjściowe według liczby zatwierdzeń zamiast alfabetycznie według nazwy zatwierdzającego, podaj opcję numerowaną:
-n
--numbered
Aby dodać adres e-mail osoby odpowiedzialnej, dodaj opcję e-mail:
-e
--email
Opcję formatu niestandardowego można również podać, jeśli chcesz wyświetlać informacje inne niż temat zatwierdzenia:
--format
Może to być dowolny ciąg akceptowany przez opcję --format
w git log
.
Aby uzyskać więcej informacji, zobacz Dzienniki kolorowania powyżej.
Filtruj dzienniki
git log --after '3 days ago'
Określone daty też działają:
git log --after 2016-05-01
Podobnie jak w przypadku innych poleceń i flag, które akceptują parametr daty, dozwolony format daty jest obsługiwany przez GNU date (wysoce elastyczny).
Alias na - --after
is - --since
.
Flagi istnieją dla Converse TOO: --before
i --until
.
Możesz także filtrować dzienniki według author
. na przykład
git log --author=author
Zaloguj się do zakresu linii w pliku
$ git log -L 1,20:index.html
commit 6a57fde739de66293231f6204cbd8b2feca3a869
Author: John Doe <[email protected]>
Date: Tue Mar 22 16:33:42 2016 -0500
commit message
diff --git a/index.html b/index.html
--- a/index.html
+++ b/index.html
@@ -1,17 +1,20 @@
<!DOCTYPE HTML>
<html>
- <head>
- <meta charset="utf-8">
+
+<head>
+ <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
Colorize Logs
git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(yellow)<%an>%Creset'
Opcja format
umożliwia określenie własnego formatu wyjściowego dziennika:
Parametr | Detale |
---|---|
%C(color_name) | opcja koloruje wynik, który następuje po nim |
%h lub% H | skraca zatwierdzenie skrótu (użyj% H dla pełnego skrótu) |
%Creset | resetuje kolor do domyślnego koloru terminala |
%d | nazwy referencyjne |
%s | temat [komunikat zatwierdzenia] |
%cr | data wystawcy w stosunku do bieżącej daty |
%an | imię autora |
Jeden wiersz pokazuje nazwę i czas komendera od momentu zatwierdzenia
tree = log --oneline --decorate --source --pretty=format:'"%Cblue %h %Cgreen %ar %Cblue %an %C(yellow) %d %Creset %s"' --all --graph
przykład
* 40554ac 3 months ago Alexander Zolotov Merge pull request #95 from gmandnepr/external_plugins
|\
| * e509f61 3 months ago Ievgen Degtiarenko Documenting new property
| * 46d4cb6 3 months ago Ievgen Degtiarenko Running idea with external plugins
| * 6253da4 3 months ago Ievgen Degtiarenko Resolve external plugin classes
| * 9fdb4e7 3 months ago Ievgen Degtiarenko Keep original artifact name as this may be important for intellij
| * 22e82e4 3 months ago Ievgen Degtiarenko Declaring external plugin in intellij section
|/
* bc3d2cb 3 months ago Alexander Zolotov Ignore DTD in plugin.xml
Dziennik Git między dwiema gałęziami
git log master..foo
pokaże zatwierdzenia, które są na foo
a nie na master
. Pomaga zobaczyć, jakie zobowiązania dodałeś od czasu rozgałęzienia!
Dziennik pokazujący zatwierdzone pliki
git log --stat
Przykład:
commit 4ded994d7fc501451fa6e233361887a2365b91d1
Author: Manassés Souza <[email protected]>
Date: Mon Jun 6 21:32:30 2016 -0300
MercadoLibre java-sdk dependency
mltracking-poc/.gitignore | 1 +
mltracking-poc/pom.xml | 14 ++++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
commit 506fff56190f75bc051248770fb0bcd976e3f9a5
Author: Manassés Souza <[email protected]>
Date: Sat Jun 4 12:35:16 2016 -0300
[manasses] generated by SpringBoot initializr
.gitignore | 42 ++++++++++++
mltracking-poc/mvnw | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mltracking-poc/mvnw.cmd | 145 +++++++++++++++++++++++++++++++++++++++
mltracking-poc/pom.xml | 74 ++++++++++++++++++++
mltracking-poc/src/main/java/br/com/mls/mltracking/MltrackingPocApplication.java | 12 ++++
mltracking-poc/src/main/resources/application.properties | 0
mltracking-poc/src/test/java/br/com/mls/mltracking/MltrackingPocApplicationTests.java | 18 +++++
7 files changed, 524 insertions(+)
Pokaż zawartość pojedynczego zatwierdzenia
Za pomocą git show
możemy wyświetlić pojedynczy zatwierdzenie
git show 48c83b3
git show 48c83b3690dfc7b0e622fd220f8f37c26a77c934
Przykład
commit 48c83b3690dfc7b0e622fd220f8f37c26a77c934
Author: Matt Clark <[email protected]>
Date: Wed May 4 18:26:40 2016 -0400
The commit message will be shown here.
diff --git a/src/main/java/org/jdm/api/jenkins/BuildStatus.java b/src/main/java/org/jdm/api/jenkins/BuildStatus.java
index 0b57e4a..fa8e6a5 100755
--- a/src/main/java/org/jdm/api/jenkins/BuildStatus.java
+++ b/src/main/java/org/jdm/api/jenkins/BuildStatus.java
@@ -50,7 +50,7 @@ public enum BuildStatus {
colorMap.put(BuildStatus.UNSTABLE, Color.decode( "#FFFF55" ));
- colorMap.put(BuildStatus.SUCCESS, Color.decode( "#55FF55" ));
+ colorMap.put(BuildStatus.SUCCESS, Color.decode( "#33CC33" ));
colorMap.put(BuildStatus.BUILDING, Color.decode( "#5555FF" ));
Wyszukiwanie ciągu zatwierdzenia w git log
Wyszukiwanie w dzienniku git za pomocą ciągu znaków w dzienniku:
git log [options] --grep "search_string"
Przykład:
git log --all --grep "removed file"
Wyszuka removed file
ciąg removed file
we wszystkich dziennikach we wszystkich oddziałach .
Począwszy od git 2.4+, wyszukiwanie można odwrócić za pomocą opcji --invert-grep
.
Przykład:
git log --grep="add file" --invert-grep
Pokaże wszystkie zatwierdzenia, które nie zawierają add file
.