.gitattributesが定義された後にリポジトリに追加されたファイルにのみ適用されるのはなぜですか?

.gitattributesが定義された後にリポジトリに追加されたファイルにのみ適用されるのはなぜですか?

私のリポジトリでは、カスタムマージドライバと.gitattributesを使用して、いくつかのバージョンのファイルがマージされないようにする新しい、興味深い戦略を実装しています。これを見てください:

http://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#Merge-Strategies

ただし、ストア/ブランチですでに追跡されているファイルに適用すると、機能しないことがわかりました。機能するには、リポジトリ/ブランチにファイルを追加する前に、.gitattributesにパスを定義するか、ファイルを削除して再追加する必要があります。

大きな問題ではありませんが、このような動作が現れる理由は疑問に思います。知っている人はいますか?

ベストアンサー1

私の経験によると、ルールは通常、リポジトリにすでに存在するファイルに遡及的に適用されません。特定のパターンを持つファイルを無視しようとすると、gitここで見られるのと同じ現象が発生します。mercurial

私がビューでWRTでファイルを無視することの利点は、含める必要があるファイルを手動で追加することで標準ルールを簡単にオーバーライドできることです。

マージポリシーを変更する場合は、すべてのファイルを一度に変更するといくつかの利点があります。gitこれを適用するために一種の強制オプションを使用するのではなく、ファイルを強制的に削除して再追加する必要がある理由はわかりません。しかし、一つもありません。)ジャングルでgitドキュメントと呼ばれるものを見つけました。

おすすめ記事