Git Записать критерии заказа по умолчанию - PullRequest
1 голос
/ 13 марта 2020

Например, когда я запускаю git log --oneline, он выводит список коммитов в хронологическом порядке c (по убыванию). Мой вопрос: какие критерии git использует для сортировки этого списка? Использует ли он author_date или committer_date, чтобы упорядочить результат? Или он использует другой? Это может быть проблемой для меня, если сортировать по committer_date, так как этот атрибут может изменить с течением времени. Я ценю любую помощь по этому поводу.

1 Ответ

4 голосов
/ 13 марта 2020

На самом деле основной критерий сортировки задается отношениями родитель-потомок, которые всегда соблюдаются в списках журналов (если три коммита объединены в цепочку A->B->C, они никогда не будут отображаться в порядке A C B, независимо от даты или параметров журнала).

Но когда мы показываем коммиты из ветвей параллелизма, в упорядочении есть некоторая свобода. Для этого сценария существуют опции --date-order --topo-order. И здесь «дата-порядок» (по умолчанию) означает committer_date. Если вы хотите sh отсортировать по дате автора, есть дополнительная опция --author-date-order.

Если вы выводите коммиты из одной ветви, то эти параметры не имеют значения.

Do c: https://git-scm.com/docs/git-log#_commit_ordering

---1----2----4----7
    \              \
     3----5----6----8----9--

Предположим, у вас есть эта история коммитов (скопированная из документов), где горизонтальная координата соответствует дате (автора). Тогда в журнале отобразится:

date-order  topo-order      topo-order (alt)
   9             9              9  
   8             8              8  
   7             6              7  
   6             5              4  
   4             3              2  
   5             7              6  
   2             4              5  
   3             2              3  
   1             1              1  

Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...