-1

短縮質問:

.gitattributes を使用し、問題のあるファイルをバイナリに設定することで、さまざまな Git 行末クロスプラットフォーム変換の問題を解決できますか? レポやユーザー設定を制御できません。

また、Web 指向の Windows 開発に CRLF はまだ必要ですか? ほとんどのツールには、モードを切り替える自動検出またはオプションがあり、LF のみで正常に動作するようです。

(暴言を削除)

注:私はすでにSOでこれに関する多くの(すべて?)回答を読み、ヘルプを読み、を読み、これに多くの時間を費やしました。

アップデート:

私はこのヘルプファイルtextを見ていません.gitattributesの設定解除について言及しています:

設定解除

パスの text 属性を設定解除すると、チェックインまたはチェックアウト時に行末変換を試行しないように git に指示されます。

「help.github.com」と「git-scm.com」の両方がこれを可能な解決策として言及していない理由は私にはわかりませんが、説明は良さそうです。

しかし、github のヘルプでは大雑把に言及されているため、これが必要だと思います。

バイナリ設定は -text -diff のエイリアスです

試してみて、うまくいったら更新します。

更新 2:

出来た!*.txt -text.gitattributes での使用はうまくいきました: 変換はありませんが、それでも差分可能で、行/文字の要約など)

4

4 に答える 4

1

何かを追加するときに CRLF を LF に変換するように git を構成できますが、その逆はできません。

git config --global core.autocrlf input

git-config(1) の関連ドキュメント

core.autocrlf
この変数を「true」に設定することは、すべてのファイルで text 属性を「auto」に設定することとほぼ同じですが、テキスト ファイルが正規化されることが保証されていない点が異なります。リポジトリに CRLF を含むファイルは変更されません。リポジトリに正規化された行末がない場合でも、作業ディレクトリに CRLF 行末を含める場合は、この設定を使用します。この変数は入力に設定できます。この場合、出力変換は実行されません。

または、この SO 回答のより詳細な説明: git replacement LF with CRLF

于 2013-11-04T15:07:10.467 に答える
1

すべてをバイナリにすると、コミットは行の差分ではなくなり、停止するgit diffか、git log --statそのように機能しなくなると思います。最善の選択肢は、すべてのファイルが LF として保存されるようにするか、core.autocrlf 入力を使用してすべてのファイルを強制的に LF に変換するか、問題が発生している場合は別の VCS を試すことです。

于 2013-11-04T15:18:23.410 に答える
0

質問で更新したように、-textこれを使用.gitattributesして git teat ファイルをテキストとして作成しますが、行変換は行わないでください。差分 (および関連する変更の概要) は引き続き表示されます。

*.txt    -text
于 2013-11-18T19:02:58.297 に答える