これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド git-fsck です。
プログラム:
NAME
git-fsck - データベース内のオブジェクトの接続性と有効性を検証します。
SYNOPSIS
git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
[--[no-]full] [--strict] [--verbose] [--lost-found]
[--[no-]ぶら下がり] [--[no-]進捗] [--接続のみ] [ *]
DESCRIPTION
データベース内のオブジェクトの接続性と有効性を検証します。
OPTIONS
到達不能トレースの先頭として扱うオブジェクト。
オブジェクトが指定されていない場合、 git fsck デフォルトでは、すべて SHA-1 のインデックス ファイルが使用されます。
refs 名前空間内の参照、およびすべての reflog (--no-reflogs が指定されていない限り) がヘッドとして含まれます。
-到達不能
存在するがどの参照からも到達できないオブジェクトを出力します。
ノード。
--[no-]ぶら下がり
存在するが決して存在しないオブジェクトを出力する 直接に 使用されます (デフォルト)。 --ぶら下がりなし
を使用すると、この情報を出力から省略できます。
- 根
ルートノードをレポートします。
-タグ
タグを報告します。
- キャッシュ
インデックスに記録されているオブジェクトは、到達不能のヘッド ノードとしても考慮されます。
トレース。
--no-reflogs
reflog 内のエントリによってのみ参照されるコミットを考慮しないでください。
到達可能。 このオプションは、ref 内にあったコミットを検索することのみを目的としています。
しかし、現在はそうではありませんが、対応する reflog 内にまだ存在します。
- 満杯
GIT_OBJECT_DIRECTORY ($GIT_DIR/objects) 内のオブジェクトだけでなく、
GIT_ALTERNATE_OBJECT_DIRECTORIES にリストされている代替オブジェクト プールで見つかった、または
$GIT_DIR/objects/info/alternates、および次の場所にある圧縮された Git アーカイブ内
$GIT_DIR/objects/pack および代替オブジェクト プール内の対応するパックのサブディレクトリ。
これがデフォルトになりました。 --no-full でオフにできます。
--接続のみ
タグ、コミット、ツリー オブジェクトの接続のみをチェックします。 開梱を避けることで
BLOB を使用すると、破損したオブジェクトや欠落したオブジェクトが失われる代わりに、操作が高速化されます。
その他の問題点。
- 厳しい
より厳密なチェックを有効にします。つまり、g+w ビットが設定されて記録されたファイル モードを検出します。
これは古いバージョンの Git によって作成されました。 Linux を含む既存のリポジトリ
カーネル、Git 自体、およびスパース リポジトリには、このチェックをトリガーする古いオブジェクトがあります。
ただし、このフラグを使用して新しいプロジェクトをチェックすることをお勧めします。
-詳細
おしゃべりしましょう。
- 探し物を見つけた
未解決オブジェクトを .git/lost-found/commit/ または .git/lost-found/other/ に書き込みます。
種類によります。 オブジェクトが BLOB の場合、内容はファイルに書き込まれます。
オブジェクト名ではなく。
--[いいえ-]進捗状況
進行状況は、デフォルトで標準エラー ストリームで報告されます。
--no-progress または --verbose が指定されていない限り、端末に接続されます。 - 進捗
標準エラー ストリームが
ターミナル。
考察
git-fsck は SHA-1 と一般的なオブジェクトの健全性をテストし、結果の完全な追跡を行います。
到達可能性とその他すべて。 見つかった破損(欠落または不良)を出力します。
オブジェクト)、および -到達不能 フラグを設定すると、存在するオブジェクトも出力されます
ただし、指定されたヘッド ノード (または既定のセット) のいずれからもアクセスできません。
上記の通り)。
破損したオブジェクトはバックアップまたは他のアーカイブで見つける必要があります (つまり、
それらを削除して、 rsync 他の誰かが持っていることを期待して、他のサイトで
破損したオブジェクト)。
抽出された 診断
ヘッド情報の欠如により、ダングリングコミットが予想される - 潜在的なヘッド - 原因
ノードをヘッドとして指定していないため、区別することはできません
親のないコミットとルートノードの間。
sha1 ディレクトリがありません
sha1 オブジェクトを保持するディレクトリがありません。
到達不可能な
の物体、実際にはどの文書でも直接的または間接的に言及されていません。
表示されたツリーまたはコミットの数。 これは、自分がいるルート ノードがもう XNUMX つあることを意味する可能性があります。
指定していないか、ツリーが破損しています。 ルートノードを見逃していない場合は、
到達不能なノードは使用できないため、削除することもできます。
ない
の物体、参照されていますが、データベースには存在しません。
ぶら下がっている
の物体、データベースには存在しますが、存在しません 直接に 使用済み。 あ
未解決のコミットはルート ノードである可能性があります。
sha1 の不一致
データベースには、sha1 がデータベース値と一致しないオブジェクトがあります。 これは、
深刻なデータ整合性の問題。
ENVIRONMENT 変数
GIT_OBJECT_DIRECTORY
オブジェクト データベースのルート (通常は $GIT_DIR/objects) を指定するために使用されます。
GIT_INDEX_FILE
インデックスのインデックスファイルを指定するために使用されます
GIT_ALTERNATE_OBJECT_DIRECTORIES
追加のオブジェクト データベース ルートを指定するために使用されます (通常は設定されていません)
GIT
の一部 git(1)スイート
onworks.net サービスを使用してオンラインで git-fsck を使用する