私はUbuntuLinuxを使用していて、git diff
の間に^ M(キャリッジリターン、ラインフィード)に気づきました。
どういうわけか、ステータスバーの下部でCRLFが選択されました。
クリックしてLFに変更しました。
ファイルごとに設定されているようですので、問題のあるファイルごとに変更する必要があります。
私の場合、どういうわけかすべての行末が変更されていたので、git diff
は真っ赤な海でした。私は以下を使用して「実際の」変更を識別しました。
git diff --ignore-space-at-eol
ただし、git commit
は、コミット履歴の「実際の」変更を埋めてしまうので、次のようにします。
git stash save
git commit -am "fix line endings"
git stash apply
これで行末がなくなり、正確な差分でコミットを行うことができます。
私がオンラインで見つけたソリューションのほとんどは、sed、vi、またはemacsの使用を含みます。 Atom(およびおそらく任意のテキストエディタ)内で直接機能するソリューションを見つけました。コマンドラインは必要ありません。
すべての返品を選択するか、すべての行の先頭でセレクターを取得してから、削除して返品を押します。 1秒かかる場合がありますが、すべての^ M文字が削除されます。
これによりインデントが台無しになる可能性がありますが、自動インデントすることはできます。これを行う必要のあるファイルが複数ある場合、これは効率的ではない可能性がありますが、1つのファイルに対しては迅速で汚い解決策です。