回答:
ドキュメントから:
各行
.gitattributes
(または.git/info/attributes
ファイル)の形式は次のとおりです。pattern attr1 attr2 ...
したがって、ここではパターンは*
であり、これはすべてのファイルを意味し、属性はtext=auto
です。
何をしtext=auto
ますか?ドキュメントから:
テキストが「auto」に設定されている場合、パスは自動行末正規化用にマークされます。コンテンツがテキストであるとGitが判断した場合、その行末はチェックイン時にLFに正規化されます。
有効になっていない場合のデフォルトの動作は何ですか?
不特定
text属性が指定されていない場合、Gitはcore.autocrlf構成変数を使用して、ファイルを変換する必要があるかどうかを判断します。
何をしcore.autocrlf
ますか?ドキュメントから:
core.autocrlf
この変数を「true」に設定することは、テキストファイルが正規化されることが保証されないことを除いて、すべてのファイルでテキスト属性を「auto」に設定することとほぼ同じです。リポジトリにCRLFを含むファイルは変更されません。リポジトリに正規化された行末がない場合でも、作業ディレクトリでCRLF行末を使用する場合は、この設定を使用します。この変数は入力に設定できます。この場合、出力変換は実行されません。
泥と同じくらいはっきりしていると思えば、あなたは一人ではありません。
これ* text=auto
が私の言葉です:誰かがファイルをコミットすると、Gitはそのファイルがテキストファイルかどうかを推測し、テキストファイルである場合は、CR + LFバイトがすべてLFバイトに置き換えられたバージョンのファイルをコミットします。作業ツリーでのファイルの外観には直接影響しません。ファイルをチェックアウトするときにLFバイトをCR + LFバイトに変換する設定が他にもあります。
私は考えていない置くことをお勧め* text=auto
して.gitattributes
ファイル。代わりに、私はこのようなものをお勧めします:
*.txt text
*.html text
*.css text
*.js text
これは、どのファイルがテキストファイルであるかを明示的に指定します。これにより、オブジェクトデータベースでCRLFがLFに変換されます(作業ツリーでは必要ありません)。のリポジトリが* text=auto
あり、Gitは画像ファイルがテキストファイルであると誤解し、オブジェクトデータベースでCR + LFバイトをLFバイトに置き換えたため、テキストファイルが破損した。デバッグするのは楽しいものではありませんでした。
を使用する必要がある場合は* text=auto
、それをの最初の行に入れ.gitattributes
て、後の行で上書きできるようにします。これはますます人気のある習慣になっているようです。
everyone
参照している場合は、git-scm
おそらく* nixパッケージを開発しているため、* nix改行文字の使用は正常です。
git-scm
* nixからのような人気のある開発ツール。MacOSはLFを使用します。Windows(メインストリームOSのみを考慮する)のみがCRLFを使用しています。これにより、Windowsで* nixツールを使用する開発者にとって、およびファイルを交換するときに誰にとっても困難になります。Why CRLFも参照してください。
*.txt text=auto
との違いを説明して*.txt text
ください。上記の例の4行はすべて、ファイル拡張子のtext=auto
直後text
ではなく、である必要があると思いました。たとえば、KiCadフットプリントファイル(「.kicad_mod」拡張子)は、gitattributesファイルの次の行を使用して正規化されます:*.kicad_mod text=auto
(kicad-pcb.org/libraries/klc/G1.7)。
これにより、行末が正規化されます。出典:Kernel.org
テキストが「auto」に設定されている場合、パスは自動行末正規化用にマークされます。コンテンツがテキストであるとgitが判断した場合、その行末はチェックイン時にLFに正規化されます。
行末正規化を適用するソースコード管理システムと相互運用する場合、または単にリポジトリ内のすべてのテキストファイルを正規化する場合は、代わりにすべてのファイルのテキスト属性を「自動」に設定する必要があります。
これにより、gitがテキストであると見なすすべてのファイルが、リポジトリ内で正規化された(LF)行末を持つようになります。
When a text file is normalized, its line endings are converted to LF in the repository.
LF
がWindowsであってものままであると言うのは正しいでしょうか?
その構成は、行末の処理方法に関するものです。有効にすると、すべての行末がリポジトリでLFに変換されます。作業ディレクトリで行末がどのように変換されるかを処理するための他のフラグがあります。こちらの問題に関する詳細情報:https : //www.kernel.org/pub/software/scm/git/docs/gitattributes.html