1

私は混合環境を実行しており、ほとんどのものをプルおよびプッシュする中央の裸のリポジトリを保持しています。この一元化されたリポジトリは Linux で実行され、私は Windows XP/7、Mac、および Linux にチェックアウトします。すべてのリポジトリで、.git/config に次の行を追加します。

[core]
     autocrlf = true

safecrlf=true私はどこにも旗を持っていません。1 台の Windows マシン (XP) で初めて変更を加えたとき、問題はなく、差分を見ると問題ないように見えます。しかし、他の Windows マシン (7) で同じことを行うと、すべての行が変更されたように表示されますが、ローカルの行末は期待どおり \r\n になります (16 進エディターでチェックした場合)。同じことが MacOSX 缶にも当てはまります。さまざまなシステムが行末に取り組んでいるような気がすることがありますが、確信が持てません (特定のファイルを変更するたびに追跡できなくなります)。

autocrlf私はセットを持っていませんでしたが、何ヶ月も前にフラグを設定しました。それが私の現在の問題を引き起こしている可能性がありますか?古い荷物を解放するために、すべてを再度複製する必要がありますか? それとも、他にも設定が必要なものはありますか? 私は約100万回試みgit checkout -- .ましたが、成功しませんでした。

4

1 に答える 1

3

作業しているマシンごとに (グローバルで)、またはリポジトリのコピーごとに (ローカルで)を設定autocrlfする必要があります。true複製元のリポジトリの設定は、ローカル リポジトリには適用されません。

もう 1 つの答えは、リポジトリ内のファイルに行末が混在しているということです。

ソース ファイルの種類ごとにチェックアウト時のフィルターを設定して行末を修正し、チェックイン時にそれらをレポ標準にリセットすることができます。

于 2010-06-20T02:26:09.273 に答える