混合環境でのGIT CRLF構成
-
28-09-2019 - |
質問
私は混合環境を実行しており、ほとんどのものを引っ張って押している中央の裸のリポジトリを保持しています。この集中リポジトリはLinuxで実行され、Windows XP/7、Mac、Linuxにチェックアウトします。すべてのリポジトリで、.git/configに次の行を配置します。
[core]
autocrlf = true
私は旗を持っていません safecrlf=true
どこでも。 1つのWindowsマシン(XP)で物を変更するときに問題はありません。差分を見ると、うまく見えます。ただし、他のWindowsマシン(7)で同じことをすると、すべての行が変更されていますが、ローカルラインエンディングは予想どおり r nです(16進エディタでチェックされた場合)。同じことがMacOSX缶にも当てはまります。時々、さまざまなシステムがラインエンディングで格闘していると感じますが、確信が持てません(特定のファイルを変更するすべての時間を追跡しています)。
私はそれを持っていませんでした autocrlf
設定しますが、何ヶ月も前に旗を設定します。それは私の現在の問題を引き起こしている可能性がありますか?古い荷物を失うためにすべてをもう一度クローンする必要がありますか?それとも、構成する必要がある他のこともありますか?私は試した git checkout -- .
約100万回ですが、成功しません。
解決
設定する必要があります autocrlf
に true
各マシンで(グローバル)、またはリポジトリのコピー(ローカル)に取り組んでいます。クローン化されたレポの設定は、ローカルリポジトリに適用されません。
もう1つの答えは、リポジトリのファイルにラインエンディングが混在しているということです。
チェックアウト時のフィルターを、ソースファイルタイプのそれぞれにセットアップして、ラインエンディングを修正し、チェックインでリポジトリ標準にリセットできます。