4

私たちの開発環境では、Windows、Mac、および Linux を使用しています。commit -> pull -> push仕事の流れに困っています。

問題は行末文字です。誰かが Mac で編集を行い、別の誰かが Windows で編集を行った場合、それらはプル時に競合します。行末が変更されているため、差分ではファイル全体が異なるものとして表示されます。

だから私の質問は、コミット時にすべての行末をLFだけに変換するようにすべての環境をセットアップするにはどうすればよいかということです。また、引っ張るときは行末を変更せず、LFのままにしておきます。

4

1 に答える 1

6

あなたが求めているのは、誰もがconfigパラメータcore.autocrlfinputに設定することです。これにより、入力(つまり、リポジトリに入るデータ;コミット)では行終了の正規化が発生しますが、出力(リポジトリから出てくるデータ;チェックアウト)では発生しません。 、プル中に発生します)。

ただし、実際にはこれを実行したくない場合があります。理想的なのは、誰もがエディターを正しく構成するだけです。ほとんどのプログラマーのエディターは、これについてかなり賢いです-彼らは行末を検出し、ファイルに書き戻すときに同じ行末を使用します。一部の編集者は少し助けが必要かもしれません。

(たとえば、ここでのVonCの回答、およびautocrlfに関するその他のSOの質問を参照してください。)

于 2010-10-21T00:31:40.783 に答える