日本語 ▾ トピック ▾ 最新バージョン ▾ git-reflog の最終更新は 2.50.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 drop [--all [--single-worktree] | <refs>…​]
git reflog exists <ref>

説明

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

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

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

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

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

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

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

「drop」サブコマンドは、指定された参照の reflog を完全に削除します。「expire」や「delete」とは対照的に、これらのコマンドは reflog エントリを削除するために使用できますが、reflog 自体を削除することはできません。

「exists」サブコマンドは、参照に reflog があるかどうかを確認します。reflog が存在する場合はゼロステータスで終了し、存在しない場合は非ゼロステータスで終了します。

オプション

show のオプション

git reflog show は、git log が受け付けるすべてのオプションを受け付けます。

expire のオプション

--all

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

--single-worktree

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

--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

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

--rewrite

reflog エントリの先行エントリが削除された場合、その「old」SHA-1 を、現在その前に来るエントリの「new」SHA-1 フィールドと等しくなるように調整します。

--stale-fix

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

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

-n
--dry-run

実際にはエントリを削除せず、削除されるはずのエントリのみを表示します。

--verbose

追加情報を画面に表示します。

delete のオプション

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

drop のオプション

--all

すべての作業ツリーのすべての参照の reflog を削除します。

--single-worktree

デフォルトでは、--all が指定されている場合、すべての作業ツリーの reflog が削除されます。このオプションは、処理を現在の作業ツリーの reflog のみに制限します。

GIT

git[1]スイートの一部

scroll-to-top