でレポを作成し、 で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のダメージを元に戻す方法も読みましたautocrlf
false
touch
、しかしそれが私の場合かどうかはわかりませんし、ウィザードのトリックも理解していません。
どうすればこの混乱から逃れることができますか?