目录 搜索
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
文字

命名

git-fsck  - 验证数据库中对象的连通性和有效性

概要

git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]         [--[no-]full] [--strict] [--verbose] [--lost-found]         [--[no-]dangling] [--[no-]progress] [--connectivity-only]         [--[no-]name-objects] [<object>*]

描述

验证数据库中对象的连通性和有效性。

选项

<对象>

作为不可达跟踪头的对象。

如果没有给定对象,则git fsck默认使用索引文件,refs命名空间中的所有SHA-1引用以及所有reflog(除非给出--no-reflogs)作为首部。

--unreachable

打印出存在但不能从任何参考节点到达的对象。

--no-dangling

打印存在但从未directly使用的对象(默认)。--no-dangling可以用来从输出中省略这些信息。

--root

报告根节点。

--tags

报告标签。

--cache

考虑索引中记录的任何对象也可作为不可达性追踪的头节点。

--no-reflogs

不要将仅由reflog中的条目引用的提交视为可访问。此选项仅用于搜索曾经在ref中的提交,但现在不是,但仍在相应的reflog中。

--full

不仅检查GIT_OBJECT_DIRECTORY($ GIT_DIR / objects)中的对象,还检查在GIT_ALTERNATE_OBJECT_DIRECTORIES或$ GIT_DIR / objects / info / alternates中列出的替代对象池中发现的对象,以及在$ GIT_DIR / objects / pack中找到的打包Git存档中的对象以及相应的对象在备用对象池中打包子目录。这现在是默认的; 你可以用--no-full来关闭它。

--connectivity-only

仅检查标签,提交和树对象的连通性。通过避免解开blob,这会加快操作速度,但会损失丢失的对象或其他有问题的问题。

--strict

启用更严格的检查,即捕获使用旧版Git创建的g + w位集记录的文件模式。现有的存储库(包括Linux内核,Git本身和稀疏存储库)具有触发此检查的旧对象,但建议使用此标志检查新项目。

--verbose

闲聊。

--lost-found

将悬挂对象写入.git / lost-found / commit /或.git / lost-found / other /,具体取决于类型。如果对象是blob,则将内容写入文件中,而不是其对象名称。

--name-objects

当显示可访问对象的名字时,除了SHA-1还显示一个描述它们如何到达的名字,与git-rev-parse [1]兼容,例如HEAD@{1234567890}~25^2:src/

--no-progress

当连接到终端时,默认情况下标准错误流会报告进度状态,除非指定--no-progress或--verbose。 - 即使标准错误流未指向终端,进度也会强制进行状态。

讨论

git-fsck测试SHA-1和一般对象的完整性,并且完全跟踪由此产生的可达性和其他一切。它打印出它发现的任何损坏(丢失或损坏的对象),并且如果使用该--unreachable标记,它还将打印出存在但不能从任何指定头节点(或默认设置,如上所述)到达的对象)。

任何损坏的对象,你必须找到备份或其他档案(即,你可以删除它们,并rsync与其他网站做一个希望别人有你已经损坏的对象)。

提取的诊断

由于缺乏头部信息,预计会出现悬而未决的承诺 - 潜在负责人

您没有指定任何节点作为头,因此无法区分未提交的提交和根节点。

缺少sha1目录<dir>

持有sha1对象的目录缺失。

无法访问<type> <object>

<type>对象<object>实际上并不直接或间接引用到所看到的任何树或提交中。这可能意味着您没有指定另一个根节点,或者该树已损坏。如果你没有错过根节点,那么你可能会删除无法访问的节点,因为它们不能被使用。

missing <type> <object>

<type> object <object>被引用,但不存在于数据库中。

dangling <type> <object>

<type> object <object>存在于数据库中,但从未directly使用。一个悬而未决的提交可能是一个根节点。

sha1 mismatch <object>

数据库中有一个sha1与数据库值不匹配的对象。这表示严重的数据完整性问题。

环境变量

GIT_OBJECT_DIRECTORY

用于指定对象数据库的根目录(通常为$ GIT_DIR / objects)

GIT_INDEX_FILE

用于指定索引的索引文件

GIT_ALTERNATE_OBJECT_DIRECTORIES

用于指定其他对象数据库根目录(通常未设置)

上一篇: 下一篇: