質問: ソースコードと一緒に、WebフォントファイルをGit環境(GitHub)に入れて管理しています。 このサイトの説明にあるように、フォントファイルが壊れてしまったので、.gitattributesで対策をしたいと考えています。 ただ、現在はGitのリポジトリに.gitattributesファイルはありません。 ここで以下の点を心配しています。 ### (1) 今までGitは何の設定を見て動いていた? これからは何の設定を見て動く? 今回新たに、使用しているWebフォントをbinaryとして扱う設定が記述された.gitattributesファイルを作成しようと思っています。 ただ、これをリポジトリに追加することにより、Webフォント以外のファイルについて、挙動が変化することはありますか? 例えば、どこかに別のデフォルト設定ファイルが存在し(SourceTreeを使っているので、SourceTreeで持っている設定ファイルとか)、今まではそれを見て動いていたが、.gitattributesをリポジトリに追加することで、元の設定が全て無視されてしまう、といったことが起きないか心配しています。 ### (2) 改行コードの変換はどの瞬間に行われる? GitHub(クライアントはSourceTree)を使って複数人で、複数のブランチを使って開発しています。 .gitattributesファイルをリポジトリに追加すれば、いずれ全員の(全てまたは一部のブランチ)に、このファイルが行き渡ると思いますが、どのような状態に至れば、Webフォントファイルを安心してコミットできるのでしょうか? 例えば、各々の**ローカルリポジトリにコミットする瞬間**に、**コミットしたファイルだけ**に対して改行コードが変換されるのであれば、Webフォントファイルをコミットするのはチームで私だけですので、あまり気にすることなくさっさとコミットすることができると考えています。
回答: .gitattributes は、 .gitignore と同じような形で動作すると理解しています。 具体的には、グローバルな設定 + レポジトリのファイルとして存在する .gitXXXX の設定で、 後者の後勝ち設定であわせたものが実際の設定として使われていたはずです。 .gitattributes を指定する前に、何を見て動いていたかはちょっと把握しきれていませんが、 .gitattributes を作成しても、その中で設定を行った部分しか、これまでの挙動と差分は生じないはずです。 また、.gitattributes は、コミットや add されている必要はなく、ファイルとして存在すれば、効力を発揮します。 どのタイミングで影響が及ぼされるかと言うと、 git add するタイミングで、 改行コードの変換は行われているはずです。