SYNOPSIS
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>...]
DESCRIPTION
このコマンドは、reflogに記録された情報を管理します。
参照ログ(reference logs)、または "reflogs" は、ブランチのヒントやその他の参照がローカルリポジトリで更新された時期を記録します。reflogは、参照の古い値を指定するために、さまざまなGitコマンドで役立ちます。 たとえば、 HEAD@{2} は「HEADが2移動前にあった位置」を意味し、 master@{one.week.ago} は「masterがこのローカルリポジトリで1週間前を指していた位置」を意味する等々。詳細については gitrevisions(7) を参照してください。
このコマンドは、さまざまなサブコマンドと、サブコマンドに応じて異なるオプションを取ります:
「show」サブコマンド(サブコマンドの指定がない場合のデフォルトでもあります)は、コマンドライン(またはデフォルトでは「HEAD」)で指定される参照のログを表示します。 reflogは最近のすべてのアクションをカバーし、さらに HEAD reflogはブランチの切り替えを記録します。 git reflog show は git log -g --abbrev-commit --pretty=oneline のエイリアスです。詳細については git-log(1) を参照してください。
「list」サブコマンドは、 対応する reflog を持つすべての ref を一覧表示します。
「exists」サブコマンドは、refにreflogがあるかどうかをチェックします。reflogが存在する場合はゼロのステータスで終了し、存在しない場合はゼロ以外のステータスで終了します。
"write" サブコマンドは、指定した参照の reflog に 1 つのエントリを書き込みます。この新しいエントリは reflog に追加され、したがって最新のエントリになります。参照名は完全修飾でなければなりません。古いオブジェクト ID と新しいオブジェクト ID はどちらも省略せずに記述し、既存のオブジェクトを指していなければなりません。reflog メッセージは正規化されます。
"delete" サブコマンドは、reflog 自体ではなく、reflog から単一のエントリを削除します。その引数は「正確な」 エントリである必要があります(例: "git reflog delete master@{2}")。このサブコマンドは、通常、エンドユーザーが直接使用することもありません。
"drop" サブコマンドは、指定した参照の reflog を完全に削除します。これは "expire" と "delete" とは対照的で、これらはいずれも reflog エントリを削除するために使えますが、reflog 自体は削除しません。
「expire」サブコマンドは、古いreflogエントリを刈り取ります。「expire」時間より古いエントリ、または「expire-unreachable」時間より古く、現在の先端から到達できないエントリがreflogから削除されます。これは通常、エンドユーザーが直接使用することはありません。代わりに、 git-gc(1) を参照してください。
OPTIONS
showサブコマンド用オプション
git reflog show は、 git log で受け入れられるすべてのオプションを受け入れます。
deleteサブコマンド用オプション
git reflog delete は、オプション --updateref と --rewrite と -n と --dry-run と --verbose を受け入れます。これらは、 expire で使用される場合と同じ意味です。
Options for drop
-
--all -
すべての作業ツリーのすべての参照について、reflog を削除します。
-
--single-worktree -
デフォルトでは、
--allが指定されている場合、すべての作業ツリーからの reflog が削除されます。このオプションは、処理を現在の作業ツリーからの reflog のみに制限します。
expireサブコマンド用オプション
-
--all -
すべての参照のreflogを処理します。
-
--single-worktree -
デフォルトでは、
--allが指定されている場合、すべての作業ツリーからのreflogが処理されます。 このオプションは、処理を現在の作業ツリー(cureent working tree)からの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 -
「壊れたコミット」(broken commits)を指すreflogエントリを削除します。壊れたコミットとは、どのリファレンスヒントからも到達できず、直接または間接的に、欠落しているコミットまたはツリーまたはブロブオブジェクトを参照するコミットです。
これの計算では、到達可能なすべてのオブジェクトのトラバースが含まれます。つまり、
gitpruneと同じコストがかかります。これは主に、reflogによって参照されるオブジェクトを保護しなかった古いバージョンのGitを使用したガベージコレクションによって引き起こされた破損を修正することを目的としています。 -
-n -
--dry-run -
実際にエントリの刈り取りは行いません。何が刈り取られるかを表示するだけです。
-
--verbose -
画面に追加情報を出力します。
GIT
Part of the git(1) suite