українська мова ▾ Topics ▾ Latest version ▾ git-rev-list last updated in 2.56.0

НАЗВА

git-rev-list - Перелічує об’єкти комітів у зворотному хронологічному порядку

СИНОПСИС

git rev-list [<options>] <commit>…​ [--] [<path>…​]

ОПИС

Виводить список комітів, до яких можна дістатися, перейшовши за посиланнями parent із вказаних комітів, але виключає коміти, до яких можна дістатися з тих, що позначені символом ^ перед номером. Стандартно вивід здійснюється у зворотному хронологічному порядку.

Це можна розглядати як операцію над множиною. Коміти, до яких можна дістатися з будь-якого з комітів, вказаних у командному рядку, утворюють множину, а потім з цієї множини віднімаються коміти, до яких можна дістатися з будь-якого з тих, що мають перед собою символ ^. Результатом виконання команди стають коміти, що залишилися. Для додаткового обмеження результату можна використовувати різні інші опції та параметри шляхів.

Таким чином, наступна команда:

$ git rev-list foo bar ^baz

означає «перелічити всі коміти, які доступні з foo або bar, але не з baz».

Спеціальне позначення "<commit1>..<commit2>" може використовуватися як скорочений запис для "^<commit1> <commit2>". Наприклад, будь-який з наступних варіантів може використовуватися як взаємозамінний:

$ git rev-list origin..HEAD
$ git rev-list HEAD ^origin

Ще одним спеціальним записом є "<commit1>...<commit2>", який корисний для злиття. Отриманий набір комітів є симетричною відмінністю між двома операндами. Наступні дві команди є еквівалентними:

$ git rev-list A B --not $(git merge-base --all A B)
$ git rev-list A...B

«rev-list» — це важлива команда Git, оскільки вона надає можливість створювати та переглядати графи предків комітів. З цієї причини вона має багато різних опцій, які дозволяють використовувати її такими різними командами, як «git bisect» та «git repack».

ОПЦІЇ

Обмеження комітів

Окрім зазначення діапазону комітів, які слід відобразити, за допомогою спеціальних позначень, описаних в інструкції, можна застосувати додаткові обмеження щодо комітів.

Використання додаткових опцій, як правило, ще більше обмежує вихідні дані (наприклад, --since=<date1> обмежує список комітами, новішими за <date1>, а використання цієї опції разом з --grep=<pattern> ще більше обмежує список комітами, у повідомленні журналу яких є рядок, що відповідає <pattern>), якщо не вказано інше.

Зверніть увагу, що ці обмеження застосовуються перед опціями сортування та форматування комітів, такими --reverse.

-<number>
-n <number>
--max-count=<number>

Обмежити вивід до <number> комітів.

--skip=<number>

Пропустити <number> комітів, перш ніж почати виводити результат коміту.

--since=<date>
--after=<date>

Показати коміти, новіші за <date>. Слово «today» означає минулу північ.

--since-as-filter=<date>

Показати всі коміти, датовані пізніше за <date>. При цьому переглядаються всі коміти в цьому діапазоні, а не лише перші, датовані раніше за <date>.

--until=<date>
--before=<date>

Показати коміти, старші за <date>.

--max-age=<timestamp>
--min-age=<timestamp>

Обмежити вивід комітів заданим часовим діапазоном.

--author=<pattern>
--committer=<pattern>

Обмежити вивід комітів тими, у яких рядки заголовка author/committer відповідають регулярному виразу <pattern>. Якщо вказано більше одного параметра --author=<pattern>, обираються коміти, автор яких відповідає будь-якому з <pattern> (аналогічно для декількох параметрів --committer=<pattern>).

--grep-reflog=<pattern>

Обмежте вивід комітів тими, у яких записи reflog відповідають регулярному виразу <pattern>. Якщо --grep-reflog використовується більше одного шаблону, вибираються коміти, повідомлення reflog яких відповідає будь-якому з заданих шаблонів. Використання цієї опції є помилкою, якщо не використовується --walk-reflogs.

--grep=<pattern>

Обмежити виведення комітів тими, повідомлення журналу яких відповідає регулярному виразу <pattern>. Якщо вказано більше одного параметра --grep=<pattern>, обираються коміти, повідомлення яких відповідають будь-якому з виразів <pattern> (але див. --all-match).

--all-match

Обмежити вивід комітів тими, що відповідають усім заданим --grep, замість тих, що відповідають хоча б одному.

--invert-grep

Обмежте вивід комітів тими, у яких повідомлення журналу не відповідає <шаблон>, зазначеному за допомогою --grep=<шаблон>.

-i
--regexp-ignore-case

Визначає регулярні вирази, що відповідають шаблонам, не враховуючи регістр літер.

--basic-regexp

Вважати обмежувальні шаблони базовими регулярними виразами; це стандартне значення.

-E
--extended-regexp

Вважати обмежувальні шаблони розширеними регулярними виразами, а не базовими типовими регулярними виразами.

-F
--fixed-strings

Вважати обмежувальні шаблони фіксованими рядками (не інтерпретувати шаблон як регулярний вираз).

-P
--perl-regexp

Вважати обмежувальні шаблони сумісними з Perl регулярними виразами.

Підтримка цих типів регулярних виразів є необов’язковою залежністю на етапі компіляції. Якщо Git не було скомпільовано з підтримкою цих виразів, вказівка цієї опції призведе до збою його роботи.

--remove-empty

Зупинитися, коли вказаний шлях зникає з дерева.

--merges

Виводити лише коміти злиття. Це точно те саме, що й --min-parents=2.

--no-merges

Не виводьте коміти з більш ніж одним батьківським елементом. Це точно те саме, що й --max-parents=1.

--min-parents=<number>
--max-parents=<number>
--no-min-parents
--no-max-parents

Показувати лише коміти, які мають щонайменше (або максимум) певну кількість батьківських комітів. Зокрема, --max-parents=1 те саме, що --no-merges, --min-parents=2 те саме, що --merges. --max-parents=0 повертає всі кореневі коміти, а --min-parents=3 повертає всі оctopus-злиття.

--no-min-parents та --no-max-parents знову скидають ці обмеження (до нульового значення). Еквівалентними формами є --min-parents=0 (будь-який коміт має 0 або більше батьків) та --max-parents=-1 (відʼємні числа означають відсутність верхньої межі).

--first-parent

Під час пошуку комітів для включення слід орієнтуватися лише на перший батьківський коміт, якщо є коміт злиття. Ця опція може забезпечити кращий огляд при перегляді еволюції певної тематичної гілки, оскільки злиття в тематичну гілку, як правило, стосуються лише періодичного приведення її у відповідність до оновлень у верхньому рівні, а ця опція дозволяє ігнорувати окремі коміти, внесені до вашої історії таким злиттям.

--exclude-first-parent-only

Під час пошуку комітів, які слід виключити (за допомогою символу ^), при виявленні коміту злиття слід враховувати лише перший батьківський коміт. Цю функцію можна використовувати для визначення набору змін у тематичній гілці, починаючи з моменту її відгалуження від віддаленої гілки, з огляду на те, що довільні злиття можуть бути дійсними змінами в тематичній гілці.

--maximal-only

Обмежити вихідні коміти тими, до яких неможливо дістатися з будь-яких інших комітів у діапазоні ревізій.

--not

Змінює значення префікса ^ (або його відсутності) на протилежне для всіх наступних специфікаторів версій, аж до наступного --not. Якщо цей параметр вказано в командному рядку перед параметром --stdin, він не впливатиме на версії, що передаються через стандартний ввід. І навпаки, якщо цей параметр передано через стандартний ввід, він не впливатиме на версії, вказані в командному рядку.

--all

Вважати, що всі посилання в refs/, разом із HEAD, вказані в командному рядку як <commit>.

--branches[=<pattern>]

Вважати, ніби всі посилання в refs/heads перелічені в командному рядку як <commit>. Якщо задано <pattern>, обмежити гілки тими, що відповідають заданому в оболонці шаблону. Якщо <pattern> не містить ?, * або [, мається на увазі /* в кінці.

--tags[=<pattern>]

Вважати, ніби всі посилання в refs/tags перелічені в командному рядку як <commit>. Якщо задано <pattern>, обмежити теги тими, що відповідають заданому в оболонці шаблону. Якщо у шаблоні відсутні ?, * або [, мається на увазі /* в кінці.

--remotes[=<pattern>]

Вважати, що всі посилання в refs/remotes перелічені в командному рядку як <commit>. Якщо задано <pattern>, обмежити гілки віддаленого відстеження тими, що відповідають заданому в оболонці шаблону. Якщо у шаблоні відсутні ?, * або [, мається на увазі /* в кінці.

--glob=<glob-pattern>

Вважати, що всі посилання, що відповідають заданому в оболонці шаблону <glob-pattern>, перелічені в командному рядку як <комміт>. Початковий refs/ автоматично додається на початку, якщо відсутній. Якщо у шаблоні відсутні ?, * або [, мається на увазі /* в кінці.

--exclude=<glob-pattern>

Не включати репозиторії, що відповідають шаблону <glob-pattern>, які в іншому випадку були б враховані наступними параметрами --all, --branches, --tags, --remotes або --glob. Повторення цієї опції накопичують шаблони виключення аж до наступної опції --all, --branches, --tags, --remotes або --glob (інші опції чи аргументи не очищують накопичені шаблони).

Наведені шаблони не повинні починатися з refs/heads, refs/tags або refs/remotes при застосуванні до --branches, --tags або --remotes відповідно, і вони повинні починатися з refs/ при застосуванні до --glob або --all. Якщо передбачається завершальна /*, її потрібно вказати явно.

--exclude-hidden=(fetch|receive|uploadpack)

Не включайти посилання, які будуть приховані командами git-fetch, git-receive-pack або git-upload-pack, використовуючи відповідні параметри конфігурації fetch.hideRefs, receive.hideRefs або uploadpack.hideRefs разом із transfer.hideRefs (див. git-config[1]). Ця опція впливає на наступну опцію псевдо-посилань --all або --glob і скидається після їх обробки.

--reflog

Вважати, що всі обʼєкти, згадані в reflogs, перелічені в командному рядку як <commit>.

--alternate-refs

Вважати, ніби всі об’єкти, зазначені як посилання на вершини альтернативних репозиторіїв, були вказані в командному рядку. Альтернативний репозиторій — це будь-який репозиторій, теку об’єктів якого вказано у файлі objects/info/alternates. Набір включених об’єктів можна змінити за допомогою параметра core.alternateRefsCommand тощо. Див. git-config[1].

--single-worktree

Як правило, якщо робочих дерев більше одного (див. git-worktree[1]), всі вони перевіряються за допомогою таких опцій: --all,