Wir haben ein Repository, das von Subversion in Git exportiert wurde. Dieses Repository wird von Mac-, Linux- und PC-Benutzern verwendet. Unnötig zu sagen, dass die Zeilenenden ein Durcheinander sind. Einige Dateien enden in CRLF, LF oder CR und einige haben eine Mischung aus allen zwei oder drei in einer Datei.Klärung/Klärung von Zeilenendeproblemen in GIT
Hinzufügen autocrlf = true
scheint die Dinge etwas zu beheben. Die Diffs kommen jedoch manchmal ziemlich komisch vor, dh eine Einzeilenbearbeitung an einer Datei bewirkt, dass alle Zeilen im Diff geändert erscheinen (ich nehme an, dass es aufgrund der Zeilenendungen für die Datei neu geschrieben wurde) und manchmal eine Zeile an a Datei funktioniert korrekt.
Gibt es eine Website, oder könnte jemand bitte erklären, wie wir das durcheinander bringen können? Gibt es eine Git-Einstellung, die wir setzen müssen, oder müssen wir eine Massenaktualisierung aller Dateien vornehmen, um eine bestimmte Zeilenendung zu haben oder was?
Jede Hilfe wäre sehr geschätzt, da es ein ziemlich Durcheinander ist!
(Die folgende stackoverflow post scheint es, könnte helfen, obwohl sie beantworten tut, was passiert, wenn wir einen anderen Mac oder PC oder Linux-Benutzer begehen ein anderes Patch haben)
Also Schritt eins: Fix die Zeilenenden im Repository. Schritt 2: Sagen Sie den Leuten, dass sie 'git config --global core.autocrlf true' verwenden sollen, und schlagen Sie sie dann herum, wenn sie sich verpflichten, ohne sie zu benutzen? – corydoras
@corydoras: Das Schöne an '.gitattributes' ist, dass die Datei in das Repository verschoben werden kann. Wenn der 'core.autocrlf' in einer Datei gesetzt und gedrängt wird, dann glaube ich, dass er Zeilenenden in beliebigen Klonen erzwingen sollte. Ich bin mir jedoch nicht sicher, ob neue Klone benötigt werden oder ob jeder Committer dem Rat auf Github folgen müsste. –