日本語 ▾ トピック ▾ 最新バージョン ▾ 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}は「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を持つすべてのrefをリストします。

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

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

"exists" サブコマンドは、refに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エントリの先行エントリが削除された場合、その「古い」SHA-1を、現在先行しているエントリの「新しい」SHA-1フィールドと同じになるように調整します。

--stale-fix

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

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

-n
--dry-run

実際にはエントリを削除せず、削除されるであろうものだけを表示します。

--verbose

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

delete のオプション

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

GIT

git[1] スイートの一部

scroll-to-top