セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.50.1 変更なし
-
2.50.0
2025-06-16
- 2.45.1 → 2.49.1 変更なし
-
2.45.0
2024-04-29
- 2.39.1 → 2.44.4 変更なし
-
2.39.0
2022-12-12
- 2.37.4 → 2.38.5 変更なし
-
2.37.3
2022-08-30
- 2.35.1 → 2.37.2 変更なし
-
2.35.0
2022-01-24
- 2.20.1 → 2.34.8 変更なし
-
2.20.0
2018-12-09
- 2.17.0 → 2.19.6 変更なし
-
2.16.6
2019-12-06
- 2.7.6 → 2.15.4 変更なし
-
2.6.7
2017-05-05
- 2.5.6 変更なし
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 変更なし
-
2.0.5
2014-12-17
概要
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
show
は git
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 が存在する場合はゼロステータスで終了し、存在しない場合は非ゼロステータスで終了します。
オプション
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
-
追加情報を画面に表示します。
GIT
git[1]スイートの一部