Русский ▾ Topics ▾ Latest version ▾ git-reflog last updated in 2.51.1

НАЗВАНИЕ

git-reflog — Управление информацией журнала ссылок (reflog)

ОБЗОР

git reflog [show] [<параметры-журнала>] [<ссылка>]
git reflog list
git reflog exists <ссылка>
git reflog write <ссылка> <старый-oid> <новый-oid> <сообщение>
git reflog delete [--rewrite] [--updateref]
	[--dry-run | -n] [--verbose] <ссылка>@{<спецификатор>}...
git reflog drop [--all [--single-worktree] | <ссылки>…​]
git reflog expire [--expire=<время>] [--expire-unreachable=<время>]
	[--rewrite] [--updateref] [--stale-fix]
	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <ссылки>…​]

ОПИСАНИЕ

Эта команда управляет информацией, записанной в журналах ссылок (reflogs).

Журналы ссылок, или «reflogs», записывают, когда обновлялись верхушки (tips) веток и других ссылок в локальном репозитории. Журналы ссылок полезны в различных командах Git для указания старого значения ссылки. Например, HEAD@{2} означает «где HEAD находился два действия назад», master@{one.week.ago} означает «куда master указывал неделю назад в этом локальном репозитории» и так далее. Для получения более подробной информации смотрите gitrevisions[7].

Команда принимает различные подкоманды и разные параметры в зависимости от подкоманды:

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

Подкоманда «list» выводит список всех ссылок, для которых существует соответствующий журнал ссылок.

Подкоманда «exists» проверяет, есть ли у ссылки журнал ссылок. Она завершается с нулевым статусом, если журнал ссылок существует, и с ненулевым статусом, если нет.

Подкоманда «write» записывает одну запись в журнал ссылок указанной ссылки. Эта новая запись добавляется в конец журнала ссылок и, таким образом, станет самой последней записью. Имя ссылки должно быть полностью квалифицированным. Как старый, так и новый ID объекта не должны быть сокращены и должны указывать на существующие объекты. Сообщение журнала ссылок нормализуется.

Подкоманда «delete» удаляет отдельные записи из журнала ссылок, но не сам журнал ссылок. Её аргументом должна быть точная запись (например, «git reflog delete master@{2}»). Обычно эта подкоманда также не используется напрямую конечными пользователями.

Подкоманда «drop» полностью удаляет журнал ссылок для указанных ссылок. Это отличается от «expire» и «delete», оба из которых можно использовать для удаления записей журнала ссылок, но не самого журнала ссылок.

Подкоманда «expire» подчищает (prunes) старые записи журнала ссылок. Записи старше времени expire или записи старше времени expire-unreachable и недостижимые из текущей верхушки (tip), удаляются из журнала ссылок. Обычно это не используется напрямую конечными пользователями — вместо этого смотрите git-gc[1].

ПАРАМЕТРЫ

Параметры для show

git reflog show принимает любые параметры, принимаемые git log.

Параметры для delete

git reflog delete принимает параметры --updateref, --rewrite, -n, --dry-run и --verbose с теми же значениями, что и при использовании с expire.

Параметры для drop

--all

Удалить журналы ссылок всех ссылок из всех рабочих копий (worktrees).

--single-worktree

По умолчанию, когда указан --all, журналы ссылок из всех рабочих копий удаляются. Этот параметр ограничивает обработку только журналами ссылок из текущей рабочей копии.

Параметры для expire

--all

Обработать журналы ссылок всех ссылок.

--single-worktree

По умолчанию, когда указан --all, обрабатываются журналы ссылок из всех рабочих копий. Этот параметр ограничивает обработку только журналами ссылок из текущей рабочей копии.

--expire=<время>

Подчистить (prune) записи старше указанного времени. Если этот параметр не указан, время устаревания берётся из настройки конфигурации gc.reflogExpire, которая по умолчанию составляет 90 дней. --expire=all подчищает записи независимо от их возраста; --expire=never отключает подчистку достижимых записей (но смотрите --expire-unreachable).

--expire-unreachable=<время>

Подчистить (prune) записи старше <время>, которые недостижимы из текущей верхушки (tip) ветки. Если этот параметр не указан, время устаревания берётся из настройки конфигурации gc.reflogExpireUnreachable, которая по умолчанию составляет 30 дней. --expire-unreachable=all подчищает недостижимые записи независимо от их возраста; --expire-unreachable=never отключает преждевременную подчистку недостижимых записей (но смотрите --expire).

--updateref

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

--rewrite

Если предшественник записи журнала ссылок подчищен, скорректировать её поле «старый» SHA-1, чтобы оно равнялось полю «новый» SHA-1 записи, которая теперь ей предшествует.

--stale-fix

Подчистить (prune) все записи журнала ссылок, которые указывают на «сломанные коммиты». Сломанный коммит — это коммит, который недостижим ни из одной из верхушек (tips) ссылок и который прямо или косвенно ссылается на отсутствующий коммит, дерево или blob-объект.

Это вычисление включает обход всех достижимых объектов, т.е. оно требует таких же затрат, как и git prune. Оно предназначено в первую очередь для исправления повреждений, вызванных сборкой мусора с использованием старых версий Git, которые не защищали объекты, на которые ссылаются журналы ссылок.

-n
--dry-run

Фактически не подчищать (prune) никакие записи; только показать, что было бы подчищено.

--verbose

Выводить дополнительную информацию на экран.

GIT

Является частью пакета git[1]