でレポを作成し、 でautocrlf=trueチェックアウトとコミットを行いましautocrlf=falseた。autocrlf=trueその後、 (OS Win)に戻りました。ブランチ間のマージを開始するまでは、すべて問題ないように見えました。多くのマージ競合が発生し、変更によりファイル全体が変更済みとしてマークされましたeols(チェックアウトされ、でコミットされたファイルだったと思いますautocrlf=false)。
私にとって価値のある歴史がいくつかあるので、eols新しいレポを作成して新しい生活を始めるよりも、何らかの変換を行うか、converted を使用してコミットを修正することを好みます。
これが私が理解している方法ですautocrlf(OS Win):
ケースautocrlf=true
WorkingTree -> commit -> GITRepository
CRLF CRLF to LF LF
LF no conv. LF
WorkingTree <- checkout <- GITRepository
CRLF LF to CRLF LF
ケースautocrlf=false
WorkingTree -> commit -> GITRepository
CRLF no conv. CRLF
LF no conv. LF
WorkingTree <- checkout <- GITRepository
CRLF no conv. CRLF
LF no conv. LF
で GIT を使用したいautocrlf=falseので、各ブランチをチェックアウトし、ユーティリティEOL コンバーターeolsでソース ファイルを修復し、CRLF でコミットすることにしました。私はそれを行いましたが、しばらくすると、設定をに変更した後にチェックアウトされなかったファイルがまだいくつかあります(または、これらのファイルは古い修正されていないコミットからマージされましたか?変換中にマスク *.filetype を使用して処理を自動化しました)すべての LF から CRLF への変換なので、このような状況について他に説明はありません)。また、ファイルをすべて再コミットしようとしましたが(ここでstackoverflowのどこかで見たように)、日付の変更はGIT AFAIKには関係ありません。autocrlfのダメージを元に戻す方法も読みましたautocrlffalsetouch、しかしそれが私の場合かどうかはわかりませんし、ウィザードのトリックも理解していません。
どうすればこの混乱から逃れることができますか?