Поиск…


Синтаксис

  • git log [параметры] [диапазон версий] [[-] путь ...]

параметры

параметр объяснение
-q, --quiet Тихий, подавляет diff-выход
--источник Показывает источник фиксации
--use-mailmap Использовать файл карты почты (изменяет информацию пользователя для пользователя)
--decorate [= ...] Украсить варианты
--L <n, m: файл> Показать журнал для определенного диапазона строк в файле, считая с 1. Начинает с строки n, переходит в строку m. Также показывает diff.
--show подпись Отображать подписи подписанных коммитов
-i, --regexp-ignore-case Сопоставьте шаблоны ограничения регулярного выражения без учета буквы

замечания

Ссылки и современная документация : официальная документация git-log

«Обычный» Git Log

git log

будет отображать все ваши коммиты с автором и хешем. Это будет показано в нескольких строках за фиксацию. (Если вы хотите показать одну строку за фиксацию, посмотрите на onelineing ). Используйте клавишу q для выхода из журнала.

По умолчанию, без аргументов, git-журнал перечисляет коммиты, сделанные в этом репозитории в обратном хронологическом порядке, то есть сначала появляются первые коммиты. Как вы можете видеть, эта команда перечисляет каждую фиксацию с ее контрольной суммой SHA-1, именем и адресом автора, датой и сообщением фиксации. - источник

Пример (из репозитория 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

Если вы хотите ограничить свою команду, чтобы последний журнал совершил n вы можете просто передать параметр. Например, если вы хотите перечислить последние 2 фиксированных лога

git log -2 

Журнал Oneline

git log --oneline

покажет все ваши коммиты только с первой частью хэша и сообщением фиксации. Каждая фиксация будет находиться в одной строке, как oneline флаг oneline .

Опция oneline печатает каждую фиксацию в одной строке, что полезно, если вы смотрите на множество коммитов. - источник

Пример (из репозитория Free Code Camp , с тем же разделом кода из другого примера):

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/

Если вы хотите ограничить прикажете до последнего n совершает журнал вы можете просто передать параметр. Например, если вы хотите перечислить последние 2 фиксированных лога

git log -2 --oneline

Более подробный журнал

Чтобы увидеть журнал в более красивой графитовой структуре, используйте:

git log --decorate --oneline --graph

выход образца:

* 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
...

Поскольку это довольно большая команда, вы можете назначить псевдоним:

git config --global alias.lol "log --decorate --oneline --graph"

Чтобы использовать версию псевдонима:

# 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

Вход с изменениями inline

Чтобы просмотреть журнал с изменениями в --patch , используйте параметры -p или --patch .

git log --patch

Пример (из репозитория 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
:

Поиск в журнале

git log -S"#define SAMPLES"

Поиски добавления или удаления конкретной строки или соответствия строки предоставленной RegExp. В этом случае мы ищем добавление / удаление строки #define SAMPLES . Например:

+#define SAMPLES  100000

или же

-#define SAMPLES  100000

git log -G"#define SAMPLES"

Ищет изменения в строках, содержащих определенную строку или сопоставление строк, предоставляемое REGEXP. Например:

-#define SAMPLES  100000
+#define SAMPLES  100000000

Список всех вкладов, сгруппированных по имени автора

git shortlog суммирует git log и группы по автору

Если параметры не заданы, список всех коммитов, сделанных на коммиттер, будет отображаться в хронологическом порядке.

$ git shortlog
Committer 1 (<number_of_commits>):
    Commit Message 1
    Commit Message 2
    ...
Committer 2 (<number_of_commits>):
    Commit Message 1
    Commit Message 2
    ...

Чтобы просто увидеть количество коммитов и подавить описание фиксации, перейдите к сводной опции:

-s

--summary

$ git shortlog -s
<number_of_commits> Committer 1
<number_of_commits> Committer 2

Чтобы отсортировать вывод по количеству коммитов вместо алфавитного имени коммиттера, перейдите в нумерованную опцию:

-n

--numbered


Чтобы добавить письмо коммиттера, добавьте его по электронной почте:

-e

--email


Опция настраиваемого формата также может быть предоставлена, если вы хотите отображать информацию, отличную от объекта фиксации:

--format

Это может быть любая строка, принятая с помощью опции --format git log .

Для получения дополнительной информации см. Раздел «Раскрашивание журналов» выше.

Журналы фильтров

git log --after '3 days ago'

Конкретные даты тоже работают:

git log --after 2016-05-01

Как и в случае с другими командами и флагами, которые принимают параметр даты, формат разрешенных дат поддерживается датой GNU (очень гибкий).

Псевдоним - --after - --since .

Флаги существуют и для обратного: - --before и - --until .

Вы также можете фильтровать журналы по author . например

git log --author=author

Войдите в диапазон строк внутри файла

$ 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">

Расписывать журналы

git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(yellow)<%an>%Creset'

Опция format позволяет указать собственный формат вывода журнала:

параметр подробности
%C(color_name) опция цветов выводит результат
%h или% H abbreviates commit hash (используйте% H для полного хэша)
%Creset сбрасывает цвет до цвета терминала по умолчанию
%d имена ссылок
%s subject [commit message]
%cr дата коммиттера, относительно текущей даты
%an имя автора

Одна строка, показывающая имя и время коммиттера с момента фиксации

tree = log --oneline --decorate --source --pretty=format:'"%Cblue %h %Cgreen %ar %Cblue %an %C(yellow) %d %Creset %s"'  --all --graph 

пример

*    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

Git Log между двумя ветвями

git log master..foo покажет коммиты, которые находятся на foo а не на master . Полезно узнать, что коммиты вы добавили после разветвления!

Журнал, показывающий зарегистрированные файлы

git log --stat

Пример:

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(+)

Показывать содержимое одной фиксации

Используя git show мы можем просмотреть одно сообщение

git show 48c83b3
git show 48c83b3690dfc7b0e622fd220f8f37c26a77c934

пример

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" ));

Поиск строки фиксации в git-журнале

Поиск git-журнала с использованием некоторой строки в журнале:

git log [options] --grep "search_string"

Пример:

git log --all --grep "removed file"

Будет искать removed file строку removed file во всех журналах во всех филиалах .


Начиная с git 2.4+, поиск можно инвертировать с помощью опции --invert-grep .

Пример:

git log --grep="add file" --invert-grep

Покажет все коммиты, которые не содержат add file .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow