2012-04-12 2 views
2

Ich habe ein Git Repository auf Windows geklont und bemerkte, dass die Zeilenende auf UNIX-Stil (LF) festgelegt sind.Wie behebt man die Zeilenenden in ausgecheckten Dateien, nachdem die Einstellung von autoclrf für ein Git-Repository geändert wurde?

es zu beheben, änderte ich den autocrlf Wert Repository auf true (core.autocrlf=true).

jedoch alle meiner Kasse aus Dateien auf der Festplatte sind noch UNIX-Stil (LF) Zeilenumbrüche haben. Wie kann ich sie reparieren?

Antwort

4

WARNUNG: Die folgenden Befehle führen dazu, dass Sie alle nicht festgeschriebenen Änderungen verlieren.

Um die Zeilenenden auf ausgecheckt Dateien reparieren Sie zwei Befehle erteilen müssen:

  1. git rm --cached -r . Dies entfernt alles aus dem Index git.
  2. git reset --hard HEAD Dadurch werden alle lokalen Änderungen.

Wenn Sie anstehende Änderungen haben, wird die Aufgabe viel schwieriger.

Sie können den Befehl dos2unix, der mit msysgit kommt, verwenden, um das Problem zu beheben und die Zeilenenden der Dateien, die Sie versuchen, zu übernehmen.

Sobald Sie es geschafft haben, alle Änderungen verpflichten Sie erhalten müssen, können Sie die beiden oben erwähnten Befehle verwenden, um die Zeilenenden für alle Dateien im respository zurückgesetzt werden.

+1

Warnung: Der dos2unix-Befehl, der mit msysgit (ab 1.4.8) gepackt ist, hat ein nicht standardmäßiges (IMO-gefährliches und idiotisches) Verhalten: UNIX-Zeilenumbrüche werden nicht erzwungen, stattdessen _toggles_ DOS <-> UNIX. Um UNIX zu erzwingen, müssen Sie die (nicht standardmäßige) Option "--d2u" verwenden. – leonbloy

+0

Ich versuchte diese beiden Befehle und Zeilenenden blieben :( – AaronLS

Verwandte Themen