設定與組態
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.45.1 → 2.47.0 沒有變更
-
2.45.0
04/29/24
- 2.39.1 → 2.44.2 沒有變更
-
2.39.0
12/12/22
- 2.37.4 → 2.38.5 沒有變更
-
2.37.3
08/30/22
- 2.35.1 → 2.37.2 沒有變更
-
2.35.0
01/24/22
- 2.20.1 → 2.34.8 沒有變更
-
2.20.0
12/09/18
- 2.17.0 → 2.19.6 沒有變更
-
2.16.6
12/06/19
- 2.7.6 → 2.15.4 沒有變更
-
2.6.7
05/05/17
- 2.5.6 沒有變更
-
2.4.12
05/05/17
- 2.1.4 → 2.3.10 沒有變更
-
2.0.5
12/17/14
概要
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 在兩次移動之前的位置」,master@{one.week.ago}
表示「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。如果 reflog 存在,則以零狀態退出,如果不存在,則以非零狀態退出。
選項
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 條目的前一個條目,請調整其 "old" SHA-1,使其等於現在位於其之前的條目的 "new" SHA-1 欄位。
- --stale-fix
-
修剪任何指向「損壞的提交」的 reflog 條目。損壞的提交是無法從任何參考頂端存取,並直接或間接參考遺失的提交、樹狀結構或 blob 物件的提交。
此計算涉及遍歷所有可存取的物件,也就是說,其成本與 git prune 相同。它主要用於修復使用舊版 Git 進行垃圾收集所造成的損壞,這些舊版 Git 不會保護 reflog 參考的物件。
- -n
- --dry-run
-
不要實際修剪任何條目;只需顯示將被修剪的內容。
- --verbose
-
在螢幕上列印額外資訊。
GIT
屬於 git[1] 套件的一部分