Frage

Ich bin mit einer gemischten Umgebung, und halten eine zentrale, nackten Repository, in dem ich ziehen und schieben die meisten meiner Sachen. Dieses zentrale Repository läuft auf Linux, und ich auschecken, um Windows XP / 7, Mac und Linux. In allen Repositories habe ich die folgende Zeile in meinem .git / config:

[core]
     autocrlf = true

Ich habe nicht die Flagge safecrlf=true überall. Zum ersten Mal, als ich Material auf meinem einem Windows-Rechner ändern (XP) gibt es kein Problem und wenn ich am diff sehen, es sieht gut aus. Aber wenn ich das gleiche auf dem anderen Windows-Rechner (7) werden alle Linien wie geändert gezeigt, aber lokale Zeilenende sind \ r \ n wie erwartet (wenn in einem Hex-Editor markiert). Das gleiche gilt für eine MacOSX kann. Manchmal habe ich das Gefühl, dass die verschiedenen Systeme auf Zeilenende ringen, aber ich kann nicht sicher sein (Ich verliere den Überblick über all die Male, die ich bestimmte Dateien ändern).

ich nicht verwenden, um den autocrlf Satz, aber die Fahne viele Monate zurück gesetzt. Könnte sein, dass meine aktuellen Probleme verursacht? Muss ich wieder Klon alles etwas alt Gepäck verlieren? Oder gibt es andere Dinge, die Bedürfnisse der Konfiguration auch? Ich habe versucht, git checkout -- . über eine Million Mal, aber ohne Erfolg.

War es hilfreich?

Lösung

Sie müssen Set autocrlf zu true auf jeder Maschine, die Sie arbeiten an (in global) oder für jede Kopie des Repository (in lokalen). Die Einstellungen des Repo Sie von geklonten werden auf Ihrem lokalen Repo nicht angewendet werden.

Die andere Antwort ist, dass Sie eine Mischung aus Zeilenenden in den Dateien in Ihrem Repo haben.

Ein Filter auf Kasse Setup für jede des Quelldateitypen sein könnte ihre Zeilenende zu korrigieren und auf checkin sie an den Repo-Standard zurückgesetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top