Gitは「愚かなコンテンツトラッカー」です。そのデザインの多くは「愚か」であることに基づいています。つまり、かなり単純な(したがって一般的な)内部表現を持ち、それを中心に構築されたツールに依存して、何か凝ったことをします。また、ソースコードを追跡するためだけに設計されています。任意のアクセス許可で任意のディレクトリツリーを追跡できるようには設計されていません。これは、ソースコードの追跡に関係のない問題のネズミ全体に陥る可能性があるためです(ユーザーIDとグループID、名前、ハードリンク、xattrsを保存しますか? ?リソースフォーク?など)。
愚かであることの一部は、ファイルの内容を追跡することです。Unix環境でソースコードを操作するために不可欠ないくつかのメタデータ(シンボリックリンクと実行可能ビット)がたまたま保存されています。人々がチェックインするのに十分なスクリプトがあり、実行可能ビットを追跡する必要があります。そうしないと、誰もがそれを実装する必要があるからです。しかし、これら2つのメタデータに加えて、Gitはファイルの内容とその名前を追跡するだけです。
それ以上のユースケースがある場合は、独自の磁器を作成するか、既存の磁器をラップするか、Gitが提供するフックや属性などの拡張ポイントを使用する必要があります。
権限とディレクトリをより詳細に追跡したい場合は、etckeeperのようなラッパーを使用することをお勧めします。