如果你正在管理一个 Git 仓库,或者需要通过一个复杂的方法来修复某些东西,Git 提供了一些管理命令来帮助你。
Git gc
git gc
命令在你的仓库中执行 “garbage collection”,删除数据库中不需要的文件和将其他文件打包成一种更有效的格式。
此命令一般在背后为你工作,虽然你可以手动执行它-如果你想的话。 我们在 维护 一节中研究此命令的几个示例。
Git fsck
git fsck
命令用来检查内部数据库的问题或者不一致性。
我们只在 数据恢复 这一节中快速使用了一次此命令来搜索所有的悬空对象(dangling object)。
Git reflog
git reflog
命令分析你所有分支的头指针的日志来查找出你在重写历史上可能丢失的提交。
我们主要在 引用日志 一节中提到了此命令,并在展示了一般用法,及如何使用 git log -g
来通过 git log
的输出来查看同样的信息。
我们同样在 数据恢复 一节中研究了一个恢复丢失的分支的实例。
Git filter-branch
git filter-branch
命令用来根据某些规则来重写大量的提交记录,例如从任何地方删除文件,或者通过过滤一个仓库中的一个单独的子目录以提取出一个项目。
在 从每一个提交中移除一 一节中,我们解释了此命令,并探究了其他几个选项,例如 --commit-filter
,--subdirectory-filter
及 --tree-filter
。
在 Git-p4 和 9.6 迁移到 Git - TFS 的章节中我们使用它来修复已经导入的外部仓库。
下一节:在本书中我们也遇到了不少底层的命令。