web-dev-qa-db-ja.com

Git core.autocrlf行末デフォルト設定

ユーザーがこの設定を変更しない場合、Gitのcore.autoclrfのデフォルト値を把握しようとしています。

ドキュメントを調べましたが、この情報が見つかりません。正しい方向を教えていただけますか?

具体的には、Gitを新規インストールした場合、GitはWindowsシステムからレポジトリにコミットするときにWindowsの行末を自動的にUnixに変換しますか?

ありがとう!

32
Pensierinmusica

gitソースコード をチェックすると、core.autocrlfはデフォルトでfalseに設定されます。 (そして 2007年2月13日 にプロパティが最初に導入されて以来、静的な値から定数に変換されています。)

Windowsインストーラーでは、gitシステム設定で明示的に設定されているこのプロパティの値を選択する必要があります。

26
LightBender

これを見つけるのは難しいですが、試行錯誤で次のことがわかりました。

  • デフォルト値は「false」です

  • Windowsインストーラーでは、目的の動作を選択できますが、デフォルトでは(提案された設定を変更せずにインストールする場合)、「true」に設定されます。これはソフトウェアのデフォルトではありません。インストーラはcore.autocrlfシステム設定を設定します。

「false」は行末で処理を行わないことを意味します「true」はLFとしてチェックインし、システムに従ってチェックアウトすることを意味します(WindowsではCRLF、UnixではLF) 。

UnixとWindowsの両方を使用する場合は、Unixで「false」を使用することをお勧めします(自動変換により、行テキストファイルに見えるバイナリファイルが破損し、UnixはLF)と「true」 Windowsの場合(それ以外の場合、リポジトリは互換性の問題を引き起こしているCRLFでいっぱいになります)。

7
Claudio

このコマンドを発行することにより、すべての構成Key-Valueをリストできます。

git config --list

そして、私が見るようにデフォルトは

core.autocrlf = true

これは、Git for Windowsをインストールしていたときに選択した(または「触れていない」と言った方がよい)設定ですが

1
Dmitriy

OPの特定の状況のた​​めに、またクロスプラットフォームの違い、グローバル.gitconfigファイル、ローカル.gitconfigファイルの場合、これを判断する最善の方法は次のコマンドを実行することです。

git config auto.crlf

gitのクリーンインストール後、どの設定が優先されるかを確認します。

コマンドの出力は、現在の作業ディレクトリ(およびそのローカル.gitconfig)に応じて変化することに注意してください。


注意:

Unixで同じコマンドを説明するコメントは実際には機能しますが、ポスターは間違った設定キーを使用していました。 autocrlfではなく、core.autocrlfである必要があります。

Git-scm.com/book/en/v2/Customizing-Git-Git-Configurationのドキュメントには3つのオプションがリストされていますが、どちらがデフォルトであるかは言及されていません。 、git config --get autocrlfはエラーを返します:キーにはセクションautocrlfが含まれていません。おそらくこれはデフォルトがfalseであることを意味しますが、これを確認しておくといいでしょう。

0
teebszet