55

環境

アプリケーションのユーザー構成ファイルの多くは、複数のマシンや複数のプラットフォーム間で簡単に共有できるように、git リポジトリに保持されています。これらの構成ファイルの中.gitconfigには、キャリッジ リターンとラインフィード文字を処理するための次の設定が含まれています。

[core]
    autocrlf = true
    safecrlf = false

問題

これらの設定は、あいまいなエラーを引き起こす GNU/Linux プラットフォームにも適用されます。

質問

これらのプラットフォーム固有の構成ファイルの違いを処理するためのベスト プラクティスは何ですか?

提案された解決策

この問題は、プラットフォームごとにブランチを用意し、共通のものをマスターに保持し、マスターが前進したときにプラットフォームブランチとマージすることで解決できることを認識しています。この問題に対するより簡単な解決策があるかどうか疑問に思っていますか?

4

3 に答える 3

65

決して電源autocrlfを入れないでください。頭痛と悲しみ以外の何物でもありません。

Windows で使用する言い訳はありません\r\n。すべての適切なエディター (定義上) が処理でき\nます。

于 2010-03-02T06:36:27.347 に答える
36

crlf私はその種の構成設定 ( ) を質問で広範囲にレビューしました:
git 構成をコードで配布します

結論は次のとおりです。

  • .gitattributesファイル
  • その種の変換を明示的に必要とするすべてのタイプをリストします。
    例えば:
*.java +crlf
*.txt +crlf
...
  • マージ、git statusシェル環境、およびsvn import(リンクと参照については、「コードを使用して git 構成を配布する」を参照してください)。 .
  • crlf可能であれば、変換を完全に避けてください。

ここで、プラットフォームごとの設定の特定の問題に関して、特にプログラムに関連しないデータの場合、ブランチは常に適切なツールであるとは限りません (つまり、これらの設定は、開発しているものとは関係なく、履歴を保存する VCS にのみ関係します)。発達)

質問で述べたようにGit: プロジェクトの 2 つのブランチを維持し、共有データのみをマージする方法は? :

システムに依存するコードを別のディレクトリに配置し、ビルド システム (Makefiles または使用するもの) でクロスプラットフォームの依存関係を処理すると、作業が大幅に簡素化されます。

この場合、ブランチはシステム依存のコードに使用できますが、サポート ツールのシステム依存の設定にはディレクトリをお勧めします。スクリプトを使用して、適切な.gitattributesファイルを作成し、リポジトリのデプロイ プラットフォームに応じて適切な設定を適用できます。

于 2010-03-02T06:32:38.780 に答える
-3

ユーザーが使用しているオペレーティング システムに応じて .gitconfig を設定する必要があると思います。Windows ユーザーは autocrlf をまったく必要としませんが、Linux ユーザーは必要です。たとえば、テキスト ファイルを crlf で保存し、Git でファイルを Linux ユーザーのために自動的に前後に変換します。

また、 .gitattributesを確認することもできます。これにより、変換されるファイルと変換されないファイルを定義できます。構成ファイルが 1 か所だけにある場合は、安全のために、そのディレクトリでのみ変換が行われるように定義できます。

于 2010-02-25T08:00:01.163 に答える