Git
英語 ▾ トピック ▾ 最新バージョン ▾ git-reflog は 2.45.0 で最後に更新されました

名前

git-reflog - reflog 情報の管理

概要

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

説明

このコマンドは、reflog に記録された情報を管理します。

参照ログ (reflog) は、ブランチやその他の参照のヒントがローカルリポジトリでいつ更新されたかを記録します。Reflog は、参照の古い値を指定するために、さまざまな Git コマンドで役立ちます。たとえば、`HEAD@{2}` は「2 つ前の HEAD の位置」、`master@{one.week.ago}` は「このローカルリポジトリで 1 週間前の master のポイント位置」などを意味します。詳細は gitrevisions[7] を参照してください。

このコマンドは、さまざまなサブコマンドと、サブコマンドに応じて異なるオプションを受け付けます。

「show」サブコマンド (サブコマンドがない場合はデフォルト) は、コマンドラインで指定された参照 (デフォルトは `HEAD`) のログを表示します。reflog は最近のすべての操作を網羅しており、さらに `HEAD` reflog はブランチの切り替えを記録します。`git reflog show` は `git log -g --abbrev-commit --pretty=oneline` のエイリアスです。詳細は git-log[1] を参照してください。

「list」サブコマンドは、対応する reflog を持つすべての参照を一覧表示します。

「expire」サブコマンドは、古い reflog エントリを削除します。`expire` 時間よりも古いエントリ、または `expire-unreachable` 時間よりも古く、現在の先端から到達できないエントリが reflog から削除されます。これは通常、エンドユーザーが直接使用するものではありません。代わりに、git-gc[1] を参照してください。

「delete」サブコマンドは、reflog から単一のエントリを削除します。その引数は、正確なエントリである必要があります (例: 「`git reflog delete master@{2}`」)。このサブコマンドも、通常、エンドユーザーが直接使用するものではありません。

「exists」サブコマンドは、reflog が ref に存在するかどうかを確認します。reflog が存在する場合はステータス 0 で終了し、存在しない場合は 0 以外のステータスで終了します。

オプション

show のオプション

git reflog show は、git log で受け入れられるオプションをすべて受け入れます。

expire のオプション

--all

すべての参照の reflog を処理します。

--single-worktree

デフォルトでは、`--all` が指定されていると、すべてのワーキングツリーの reflog が処理されます。このオプションは、現在のワーキングツリーの reflog の処理のみに制限します。

--expire=<時間>

指定された時間よりも古いエントリを削除します。このオプションが指定されていない場合、有効期限は設定 `gc.reflogExpire` から取得されます。これはデフォルトで 90 日です。`--expire=all` は、年齢に関係なくエントリを削除します。`--expire=never` は、到達可能なエントリの削除をオフにします (ただし、`--expire-unreachable` を参照)。

--expire-unreachable=<時間>

ブランチの現在の先端から到達できない <時間> よりも古いエントリを削除します。このオプションが指定されていない場合、有効期限は設定 `gc.reflogExpireUnreachable` から取得されます。これはデフォルトで 30 日です。`--expire-unreachable=all` は、年齢に関係なく到達できないエントリを削除します。`--expire-unreachable=never` は、到達できないエントリの早期削除をオフにします (ただし、`--expire` を参照)。

--updateref

前の最上位エントリが削除された場合、参照を最上位 reflog エントリ (つまり、<ref>@{0}) の値に更新します。(このオプションは、シンボリック参照では無視されます。)

--rewrite

reflog エントリの先行者が削除された場合、その「古い」SHA-1 を、現在先行するエントリの「新しい」SHA-1 フィールドと同じになるように調整します。

--stale-fix

「壊れたコミット」を指す reflog エントリを削除します。壊れたコミットとは、参照の先端から到達できず、直接的または間接的に欠落しているコミット、ツリー、またはブロブオブジェクトを参照するコミットです。

この計算には、到達可能なすべてのオブジェクトのトラバースが含まれます。つまり、git prune と同じコストがかかります。これは主に、古いバージョンの Git を使用したガーベジコレクションによって発生した破損を修正することを目的としています。古いバージョンでは、reflog で参照されるオブジェクトは保護されませんでした。

-n
--dry-run

実際にはエントリを削除しません。削除されるエントリだけを表示します。

--verbose

画面に詳細情報を表示します。

delete のオプション

git reflog delete は、expire で使用する場合と同じ意味を持つオプション `--updateref`、`--rewrite`、`-n`、`--dry-run`、および `--verbose` を受け入れます。

GIT

git[1] スイートの一部

scroll-to-top