9

.gitconfig私は実行するときにいくつかの色があるように自分を変更しましたgit diff

$ cat .gitconfig 
[color]
ui = true

私はubuntuマシンで作業していて、VIMを使用していくつかのコードを編集しました。ファイルを編集した後、実行します。1git diff回は。を使用し、もう1回は使用しませんui=true

問題:最初のケースでは、^M文字と編集された行の終わりがあります。しかし、操作されたファイルをめくったり、、、..でcolor.ui見たりするとvim、それらは表示されません。catmore

4

3 に答える 3

15

おそらくエンコーディングの問題です。'git diff'コマンドは、ファイル形式がDosであると考えてVimを実行しています。

他のコマンドを使用している場合は、Unixファイルとして正しく認識されます。

試してみてください: :set fileformat=unix git diffウィンドウで?

uiオプションのリンクが表示されないため、これが根本的な原因かどうかはわかりません。

于 2013-01-22T16:12:39.247 に答える
7

core.whitespaceに設定することで問題は解決しましたcr-at-eol

行末のキャリッジリターンを行末記号の一部として扱います(git-config docs)

これは、次のようにプロジェクトごとまたはグローバルgit構成ファイルに追加できます。

[core]
    whitespace = cr-at-eol

これにより、行末以外の別の変更が原因で差分にあった行末の^Mが非表示になる問題が解決されます。唯一の違いが行末である変更を無視することは意図されていません。core.autocrlf=のウィンドウを使用しtrueているため、行末の不一致が予想されます。

私の唯一の注意点は、これがgitがコミットしたいEOLの本物の変更にフラグを立てるかどうかに影響するかどうかわからないことですが、おそらくautocrlf=trueではこれは当てはまりません。

ここでは、よりターゲットを絞った(ただし、少しハッキーな)代替の修正について説明します

于 2017-11-21T10:50:59.373 に答える
1

Githubの優れた「行末の処理」ページをご覧ください。

https://help.github.com/articles/dealing-with-line-endings

core.autocrlfを設定してから、リポジトリを再正規化することをお勧めします。

于 2013-11-29T09:58:39.653 に答える