1. ホーム
  2. git

[解決済み] WindowsでgitにCR+LFの代わりにLFを使わせるには?

2022-03-20 14:04:26

質問

Windows で git に強制的にファイルをチェックアウトさせたい。 LF ではなく CR+LF . つの設定項目を確認しましたが、正しい組み合わせの設定が見つかりませんでした。

すべてのファイルを LF を維持し LF を追加しました。

備考 私は autocrlf = input が、これではコミット時にファイルを修復してしまうだけです。を使って強制的に取得したいのです。 LF .

おそらく、私はそれほど明確ではありませんでした:リポジトリは、すでに使用されている LF が、msysgit を使ってチェックアウトしたファイルには CR+LF で、msysgitに強制的に取得させたいのです。 LF : Unix の改行コードを強制する .

>git config --list | grep crlf
core.autocrlf=input

解決方法は?

OPが質問を追加しました。

msysgit を使ってチェックアウトされたファイルは CR+LF で、msysgitに強制的に取得させたいのですが、そのためには LF

最初の簡単なステップでは、やはり .gitattributes ファイルを作成します。

# 2010
*.txt -crlf

# 2020
*.txt text eol=lf 

(として コメントで指摘された によって を参照しています。 .gitattributes 行末変換 ) を避けるために CRLF を持つファイルに対して、正しい eol .

そして 私はいつも git config --global core.autocrlf false に適用される)変換を無効にする。 すべて バージョン管理されたファイル)

参照 クロスプラットフォームのgit configのベストプラクティス?

Git 2.16以降 (2018年第1四半期)では git add --renormalize . を適用するために、それらの .gitattributes の設定をすぐに実行します。


しかし、より強力な第二のステップでは gitattribute フィルタドライバ を追加し、スマッジステップを追加します。

作業ツリーを更新するときはいつでも、スクリプトは .gitattributes を強制的に削除します。 LF eol といった、強制したい書式オプションがあります。
もし、" clear "スクリプトが何もしなければ、(コミット後に)ファイルを変換し、必要な書式を正確に適用したことになります。