web-dev-qa-db-ja.com

行末設定を変更する方法

行末処理方法の設定を変更するためのファイルやメニューはありますか?

3つの選択肢があります。

  1. Windowsスタイルをチェックアウトし、Unixスタイルをコミットする

    テキストファイルをチェックアウトするとき、GitはLFをCRLFに変換します。テキストファイルをコミットすると、CRLFはLFに変換されます。クロスプラットフォームプロジェクトの場合、これはWindowsで推奨される設定です( "core.autocrlf"は "true"に設定されています)。

  2. そのままチェックアウトし、Unixスタイルをコミットする

    テキストファイルをチェックアウトするとき、Gitは変換を行いません。テキストファイルをコミットすると、CRLFはLFに変換されます。クロスプラットフォームプロジェクトの場合、これはUnixで推奨される設定です( "core.autocrlf"は "input"に設定されています)。

  3. そのままチェックアウト、そのままコミット

    テキストファイルをチェックアウトまたはコミットするとき、Gitは変換を行いません。このオプションを選択することは、クロスプラットフォームプロジェクトでは推奨されません( "core.autocrlf"は "false"に設定されています)。

421
qwertymk

これを制御する通常の方法はgit configです。

例えば

git config --global core.autocrlf true

詳細については、 このPro Gitへのリンク を "core.autocrlf"というセクションにスクロールダウンしてください。


これがどのfileに保存されているか知りたい場合は、次のコマンドを実行します。

git config --global --edit

そしてgitグローバル設定ファイルがテキストエディタで開くはずです、そしてあなたはそのファイルがどこからロードされたかを見ることができます。

385
CodingWithSpike

OSで使用されている行末フォーマット

  • Windows:CR(キャリッジリターン\r)とLF(LineFeed \n)のペア
  • OSX、Linux:LF(LineFeed \n

2つの方法で、各OSの行末フォーマットを自動修正するようにgitを設定できます。

  1. Gitグローバル設定
  2. .gitattributesファイルを使用する

グローバル設定

git config --global core.autocrlf input

これにより、コミット時にCRLFLFに修正できます。

git config --global core.autocrlf true

これは、あなたがWindowsでチェックアウトするとき、すべてのLFCRLFに変換されることを確実にするでしょう

.gitattributesファイル

私たちのチームの全員が自分の設定を設定することを期待したくないので.gitattributesファイルを保存するのは良い考えです。このファイルはリポジトリのルートパスを保持する必要があり、存在する場合はgitがそれを尊重します。

* text=auto

これはすべてのファイルをテキストファイルとして扱い、チェックアウト時に終了するOSの行に変換し、コミット時に自動的にLFに戻ります。明示的に伝えたい場合は、

* text eol=crlf
* text eol=lf

1つ目はチェックアウト用、2つ目はコミット用です。

*.jpg binary

すべての.jpg画像をバイナリファイルとして扱います。だから変換は必要ありません

116
Jasnan

すべての開発者に再配布できるリポジトリ設定ソリューションについては、 .gitattributes ファイルの text 属性を調べてください。このように、開発者は手動でリポジトリに独自の行末を設定する必要はありません。また、リポジトリごとに行末のスタイルが異なる可能性があるため、少なくともcore.autocrlfは最適ではありません。

例えば、与えられたパスでこの属性の設定を解除する[ - text]チェックインとチェックアウトの際にgitが行末に触れないようにします。私の意見では、これは最良の動作です。現代のほとんどのテキストエディタは両方のタイプの行末を処理できるからです。また、チェックイン時に開発者として行末変換を行いたい場合でも、パスを特定のファイルと一致するように設定するか、リポジトリのeol属性(.gitattributes内)を設定することができます。

.gitattributesファイルとテキスト属性をより詳細に説明しているこの関連記事もチェックしてください。 GitでのCRLF(キャリッジリターン、ラインフィード)処理の最良の戦略は何ですか?

27
Fazi

PC形式からUNIX形式に変更されたファイル形式を変換したい場合。

(1)亀GITを再インストールし、[行末変換]セクションで[そのままチェックアウト - そのままチェックイン]オプションを選択していることを確認します。

(2)残りの設定はそのままにします。

(3)インストールが完了したら

(4)UNIX形式に変換されたすべてのファイル拡張子をテキストファイル(extensions.txt)に書き込みます。

ex:*.dsp
   *.dsw

(5)クローンにファイルをコピーしますGITBASHで以下のコマンドを実行します

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt
2
Nishanth