Skip to content

git-prune

从对象数据库中修剪所有不可达对象。

概要

txt
'git prune' [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]

描述

提示:在大多数情况下,用户应运行 'git gc',它会调用 'git prune'。请参阅下面的"备注"部分。

此命令使用 refs/ 中所有可用的引用运行 'git fsck --unreachable',可以选择附加命令行上指定的一组额外对象,并从对象数据库中修剪从这些头对象中任何对象都不可达的所有未打包对象。此外,它通过运行 'git prune-packed' 修剪在包中也找到的未打包对象。它还会移除 .git/shallow 中任何引用都不可达的条目。

请注意,不可达的已打包对象将保留。如果不需要此行为,请参阅 git-repack(1)

选项

-n, --dry-run

不移除任何对象;只报告将移除什么。

-v, --verbose

报告所有被移除的对象。

--progress

:显示进度。

--expire <time>

:仅过期早于 <time> 的松散对象。

--

:不再将后续参数解释为选项。

:除了从我们的任何引用可达的对象外,还保留从列出的 <head> 可达的对象。

示例

修剪未被您的仓库或通过其 .git/objects/info/alternates 借用您仓库的另一个仓库使用的对象:

$ git prune $(cd ../another && git rev-parse --all)

备注

在大多数情况下,用户不需要直接调用 'git prune',而应调用 'git gc',它会处理修剪以及许多其他维护任务。

有关哪些对象被视为修剪对象的描述,请参阅 'git fsck' 的 --unreachable 选项。

另请参阅

git-fsck(1)git-gc(1)git-reflog(1)

Git

git(1) 套件的一部分

基于 CC BY-NC-SA 3.0 许可发布