Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.56.0
2026-09-28
-
2.55.0
2026-06-29
-
2.54.0
2026-04-20
-
2.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.49.1 no changes
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 no changes
-
2.48.0
2025-01-10
- 2.45.1 → 2.47.3 no changes
-
2.45.0
2024-04-29
- 2.43.3 → 2.44.4 no changes
-
2.43.2
2024-02-13
- 2.43.1 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.41.1 → 2.41.3 no changes
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.33.3 → 2.34.8 no changes
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
-
2.33.0
2021-08-16
- 2.32.1 → 2.32.7 no changes
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.1 → 2.25.5 no changes
-
2.25.0
2020-01-13
- 2.24.1 → 2.24.4 no changes
-
2.24.0
2019-11-04
- 2.23.1 → 2.23.4 no changes
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 no changes
-
2.19.2
2018-11-21
- 2.17.1 → 2.19.1 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОПИС
Виводить список комітів, до яких можна дістатися, перейшовши за посиланнями 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. Якщо передбачається завершальна /*, її потрібно вказати явно. -
Не включайти посилання, які будуть приховані командами
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,