6

私はGitの経験がまったくないので、これには困惑します:

作業コピーを別のブランチ (単純なgit checkout master) に切り替えたところ、その直後にgit status何百もの変更されたファイルが表示されます。ただし、それはすべて行末に関するものです。agit diff --ignore-space-at-eolは私に多くの警告を与えます:

warning: CRLF will be replaced by LF in src/.../somefile.js.
The file will have its original line endings in your working directory.

私は通常、バージョン管理されたテキスト ファイルで DOS スタイルの行末を使用するのは悪い考えだと考えていますが、これは最初からコミットされているものです。これを Linux ボックスで実行したところ、取得したファイルには CRLF 行末が含まれていました。

私の状況でクリーンアップする最良の方法は何ですか? すべてのファイルの行末を変更してコミットする必要がありますか?

今後このような状況を回避するには、Git をどのように構成すればよいでしょうか?

4

2 に答える 2

2

次のいずれかを試してください (OS によって異なります)。

// Windows
git config --global core.autocrlf true

// Linux, OSX
git config --global core.autocrlf input
于 2013-10-21T07:54:39.710 に答える
2

前に述べたように、私は次のことを好みます。

  • グローバル変換オプションを false に設定したままにします (git config core.autocrlf false)
  • 特定のファイルまたはファイル拡張子のファイルにeolディレクティブを.gitattributes設定します。

どのような解決策を選択しても、現在のインデックスを修正するには、「git filter-branch で行末を修正しようとしていますが、運がありません」を確認してください。特に、ファイルの削除を
テストし、その後に..git/indexgit reset

于 2013-10-21T08:14:18.967 に答える