设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.45.1 → 2.49.0 无更改
-
2.45.0
2024-04-29
- 2.39.1 → 2.44.3 无更改
-
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 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=<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 条目。 损坏的提交是指无法从任何引用提示访问的提交,并且直接或间接引用丢失的提交、树或 blob 对象。
此计算涉及遍历所有可访问的对象,即它具有与 git prune 相同的成本。 它主要用于修复使用旧版本 Git 进行垃圾回收而导致的数据损坏,这些旧版本 Git 没有保护 reflog 引用的对象。
- -n
- --dry-run
-
实际上不修剪任何条目; 仅显示将要修剪的内容。
- --verbose
-
在屏幕上打印额外信息。
GIT
属于 git[1] 套件的一部分