git add-on - 2つのリポジトリが同じであることを確認する方法

git add-on - 2つのリポジトリが同じであることを確認する方法

別のGit添付ファイルストアからコンテンツを複製、同期、インポートするときに同じミラーが設定されていることを確認するにはどうすればよいですか?

過去には、ファイル間の比較を実行するためにunisonなどのツールを使用していましたが、これは時間とメモリの集約的でした。

完全性チェックを実行する他のオプションはありますか?これに対する主な動機は、既存のリポジトリを複製したが、サイズが小さくなったためである。以前のリポジトリで使用されていないオブジェクトや参照されていないオブジェクトがあったため、小さいと予想しましたが、サイズはかなり異なります。

だから実行できることを確認したいと思います。

ベストアンサー1

git fsckGitには、Gitメタデータ構造の一般的な問題を指摘するための完全性チェック()が組み込まれています。git gcぶら下がったものやその他の不要なものを取り除くガベージコレクタ()もあります。

データの整合性に関しては...基本的にこれはgitが提供する保証であり、入力したデータは取り出すデータです。git log(最後のコミットのハッシュでも) 同じならデータも同じです。 gitのすべてのステップは、データ、メタデータ、および以前のデータに対してチェックサムを実行します。これはブロックチェーンと似ています。データがどこからでも変更されると、チェックサムも変更されます。チェックサムが一致しない場合、gitはチェックアウト中に多くの苦情を表示します。

Linus TorvaldsはYoutubeで見られるgit(2007-2008?)についての古い講演を持っており、IIRCではデータの整合性の側面についても話しています。以下は追加文書です。https://git-scm.com/book/en/Git-Internals-Git-Objects

実際、人々はこの問題をgitが魔法のように解決してくれるので心配しません。ソースに追いつくために変更をプル/プッシュ/コミットする必要があるかどうかを確認するには、「git status」を実行します。

余分なスペースを使用するには他の理由があるかもしれません。git stash使ったことがあるなら、おそらく空間を占めているでしょう。

これもリポジトリの複製に違いがある部分です。 gitはコミットされていないローカルコンテンツに興味がありません。コミットされない場合、クローンに関する限り存在しません。

おすすめ記事