2016-11-20 4 views
0

Ich teile eine Git-Repository mit vielen Menschen und wir finden es derzeit schwierig, die gewünschte Zeilenende-Funktion zu bekommen. Was möchten wir passieren:Git Cross-Plattform-Zeilenenden

  • Alle Dateien auf dem Repository mit LF Zeilenenden gespeichert werden
  • Wenn ein Mac-Benutzer zieht/Klone/schiebt, alles bleibt gleich
  • Wenn ein Windows-Benutzer zieht/Klone, alles zu CRLF mit Ausnahme von .scr-Dateien konvertiert
  • Wenn ein Windows-Benutzer drückt, wird alles auf LF (siehe erste Kugel)

ich habe ein paar verschiedene .gitattributes Lösungen ein erprobtes umgewandelt Und ich denke, das kann gemacht werden, ich habe einfach nicht den richtigen Weg gefunden.

Antwort

0

Dies ist oft spezifisch für den Editor, den Sie verwenden.

Sie können einen standardisierten Satz von Regeln wie EditorConfig verwenden, um gemeinsame Zeilenendungen anzugeben. Solange jeder in Ihrem Begriff eine IDE verwendet, die ihn entweder nativ unterstützt oder ein Plugin installiert hat, das es unterstützt, sollten Sie in der Lage sein, eine plattformübergreifende Konsistenz zu erreichen.

Eine abisoliert .editorconfig Datei, die LF Zeilenenden gibt könnte wie folgt aussehen:

# top-most EditorConfig file 
root = true 

[*] 
end_of_line = lf 

Einige Editoren mit Unterstützung eingebaut, und Plugins für andere sind listed here.

+0

Ich habe keine Möglichkeit sicherzustellen, dass jeder die gleiche IDE verwendet. In der Tat wird dies hoffentlich bald ein öffentliches Projekt werden, also hoffe ich, es so zu machen, dass jeder Benutzer das Projekt ziehen kann, ohne selbst Anpassungen am Zeilenende vornehmen zu müssen. – WhS4

+0

Das ist genau der Punkt von EditorConfig - es ist plattformübergreifend und wird von den meisten gängigen IDEs unterstützt. Wenn die Datei vorhanden ist und der Benutzer das Plugin installiert hat, formatiert es Ihre Zeilenenden unabhängig von der Konfiguration der IDE so, wie Sie es angegeben haben. Wenn der Benutzer keine EditorConfig-Unterstützung in seiner IDE hat und seine Zeilenenden so konfiguriert sind, dass sie etwas anderes sind als das, was Sie wollen, können Sie das nicht für sie ändern –

+0

Ah, ich sehe jetzt. Danke für die Antwort und ich werde das definitiv in Erwägung ziehen, aber ich habe gehofft, dass ich das nur über Git tun kann, ohne ein externes Plugin zu verwenden. Gibt es keine Möglichkeit, das gewünschte Verhalten über .gitattributes und git global config zu erhalten? – WhS4

Verwandte Themen