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

НАЗВА

git-reflog  — Керування відомостями reflog (журналу посилань)

СИНОПСИС

git reflog [show] [<log-options>] [<ref>]
git reflog list
git reflog exists <ref>
git reflog write <ref> <old-oid> <new-oid> <message>
git reflog delete [--rewrite] [--updateref]
	[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
git reflog drop [--all [--single-worktree] | <refs>…​]
git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
	[--rewrite] [--updateref] [--stale-fix]
	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>…​]

ОПИС

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

Журнали посилань, або "reflogs", записують, коли вершини гілок та інші посилання оновлювалися в локальному репозиторії. Reflogs корисні в різних командах Git для визначення старого значення посилання. Наприклад, HEAD@{2} означає "де HEAD був два кроки тому", master@{one.week.ago} означає "куди master вказував тиждень тому в цьому локальному репозиторії" тощо. Див. gitrevisions[7] для отримання додаткової інформації.

Команда приймає різні субкоманди та різні опції залежно від них:

Субкоманда «show» (яка також є стандартною, якщо не вказано інших субкоманд) показує журнал посилання, вказаного в командному рядку (або зазвичай HEAD). Журнал reflog охоплює всі останні дії, а крім того, журнал HEAD фіксує перемикання гілок. git reflog show є псевдонімом для git log -g --abbrev-commit --pretty=oneline; див. git-log[1] для отримання додаткової інформації.

Субкоманда «list» виводить список усіх ref, які мають відповідний reflog.

Субкоманда «exists» перевіряє, чи є у ref журнал reflog. Вона завершується з кодом 0, якщо журнал reflog існує, і з кодом, відмінним від 0, якщо його немає.

Субкоманда «write» записує один запис у журнал посилань (reflog) вказаного об’єкта-посилання. Цей новий запис додається в кінець журналу посилань і, таким чином, стає найновішим записом. Ім’я об’єкта-посилання має бути вказано у повному вигляді. Ідентифікатори як старого, так і нового об’єкта не повинні бути скороченими та мають вказувати на наявні об’єкти. Повідомлення журналу посилань нормалізується.

Субкоманда «delete» видаляє окремі записи з reflog, але не сам reflog. Її аргументом має бути точний запис (наприклад, «git reflog delete master@{2}»). Зазвичай ця субкоманда також не використовується кінцевими користувачами безпосередньо.

Субкоманда «drop» повністю видаляє журнал посилань для вказаних посилань. Вона відрізняється від команд «expire» та «delete», які можна використовувати для видалення записів із журналу посилань, але не самого журналу.

Субкоманда «expire» видаляє старі записи з reflog. Записи, які старші за час, вказаний у параметрі expire, або записи, які старші за час, вказаний у параметрі expire-unreachable, і до яких неможливо дістатися з поточної кінцевої точки, видаляються з reflog. Зазвичай кінцеві користувачі не використовують цю функцію безпосередньо — натомість див. git-gc[1].

ОПЦІЇ

Опції для show

git reflog show приймає будь-які опції, прийняті git log.

Опції для delete

Команда git reflog delete приймає опції --updateref, --rewrite, -n, --dry-run та --verbose з тими ж значеннями, що й під час їх використання з expire.

Опції для drop

--all

Видалити журнали посилань усіх посилань з усіх робочих дерев.

--single-worktree

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

Опції для expire

--all

Обробляти reflogs всіх посилань.

--single-worktree

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

--expire=<time>

Видаляти записи, старіші за вказаний час. Якщо цей параметр не вказано, час закінчення терміну дії береться з налаштування конфігурації gc.reflogExpire, яке, у свою чергу, зазвичай становить 90 днів. --expire=all видаляє записи незалежно від їхнього віку; --expire=never вимикає видалення доступних записів (але див. --expire-unreachable).

--expire-unreachable=<time>

Видалити записи, старші за <time>, до яких неможливо дістатися з поточної іершини гілки. Якщо цей параметр не вказано, час закінчення терміну дії береться з параметра конфігурації gc.reflogExpireUnreachable, який за замовчуванням становить 30 днів. --expire-unreachable=all видаляє недоступні записи незалежно від їхнього віку; --expire-unreachable=never вимикає дострокове видалення недоступних записів (але див. --expire).

--updateref

Оновити посилання на значення найвищого запису журналу посилань (тобто <ref>@{0}), якщо попередній найвищий запис було вилучено. (Цей параметр ігнорується для символічних посилань.)

--rewrite

Якщо попередній запис у журналі reflog було видалено, слід змінити його «старий» SHA-1 так, щоб він збігався з «новим» полем SHA-1 запису, який тепер стоїть перед ним.

--stale-fix

Видалить із reflog усі записи, що вказують на «поламані коміти». Поламаний коміт — це коміт, до якого неможливо дістатися з жодного з кінців посилань і який прямо чи опосередковано посилається на відсутній коміт, дерево або об’єкт blob.

Це обчислення включає обхід усіх досяжних обʼєктів, тобто має таку ж вартість, як і «git prune». Воно в першу чергу призначене для виправлення пошкоджень, спричинених збиранням сміття за допомогою старіших версій Git, які не захищали обʼєкти, на які посилаються reflogs.

-n
--dry-run

Насправді не вилучати жодних записів; просто показати те, що мало б бути вилучено.

--verbose

Виводити додаткову інформацію на екран.

GIT

Частина набору git[1]