Zeilenenden für Git in Visual Studio Project können nicht normalisiert werden

Lesezeit: 2 Minuten

Benutzer-Avatar
Eric Honig

Problem: Git interpretiert eine ganze C#-Datei als geändert, nachdem Dateiänderungen lokal gespeichert wurden. Es zeigt an, dass sich Zeilenenden geändert haben, obwohl sie als CRLF-Endungen ausgecheckt und lokal mit CRLF-Zeilenenden gespeichert wurden.

Ich arbeite in meinem Job an einem Visual Studio-Projekt, das mehrere Mitwirkende hat. Ich verwende Visual Studio 2012. In den letzten 2 Tagen hatten ein anderer Kollege und ich das obige Problem, nachdem wir das Repo von unserer Unternehmens-Stash-Site geklont hatten. Wir können unsere Änderungen nicht festschreiben, da Git anzeigt, dass sich die gesamte Datei geändert hat und einige unserer Dateien Tausende von Zeilen lang sind. Hier ist mehr Kontext zu den Symptomen:

  • Das Problem tritt nur bei einigen Dateien auf, nicht bei allen.
  • Das Problem ist nicht spezifisch für Visual Studio. Ich habe die Datei in IntelliJ und Notepad++ bearbeitet und das gleiche Problem festgestellt
  • Nachdem die Datei geändert wurde, habe ich extreme Schwierigkeiten, Änderungen zu verwerfen und die Datei aus dem Repo auszuchecken. Ich habe versucht, mehrere Befehle auszuführen, die mein lokales Repo zurücksetzen sollten. Manchmal funktionieren sie und ich bin mit dem Ursprung verbunden, manchmal nicht. Die einzig konsistente Lösung besteht darin, einen neuen Zweig auszuchecken, die Änderungen dort festzuschreiben und zurück zum Zielzweig zu wechseln. Ich habe die folgenden Methoden ausprobiert, um Änderungen zu verwerfen:
    git checkout -- 
    git reset --hard
    git reset HEAD
    git stash

Hier ist eine Liste der Schritte, die ich unternommen habe, um das Problem zu beheben:

  • Zeilenende-Normalisierung, wie dokumentiert hier
  • Ändern meiner Git-Konfiguration in autocrlf=true und autocrlf=false. Dies ist hier dokumentiert. Das Problem bleibt bei beiden Einstellungen bestehen
  • Ändern der .gitattributes-Einstellungen im Projekt. Das Folgende sind meine aktuellen Einstellungen, die dem im obigen Link angegebenen Beispiel entsprechen
    * text=auto
    *.cs text
  • Git deinstallieren und neu installieren (zweimal)

Nichts, was ich bisher getan habe, hat das Problem behoben. Meine Vermutung ist, dass es mit den Einstellungen in der .gitattributes-Datei zusammenhängt. Allerdings hat niemand sonst, einschließlich des Hauptentwicklers des Projekts, diese Probleme beim Klonen des Repos erlebt. Ich würde mich sehr über Anregungen freuen. Vielen Dank!

  • Haben Sie eine Lösung gefunden? Ich übertrage in VS und erhalte ausstehende Änderungen in Linux und umgekehrt in einer Schleife. Bringt mich dazu, jemanden töten zu wollen.

    – Stefano d’Antonio

    11. Juli 2015 um 11:58 Uhr

Ich hatte das gleiche Problem und habe die Zeile auskommentiert

* text=auto

in .gittributes.

Das hat mein Problem gelöst. Hoffe, das hilft dir oder jemand anderem mit dem gleichen Problem.

Soweit ich das verstehe * text=auto line soll bei Zeilenenden helfen, aber aus irgendeinem Grund scheinen einige Leute, die Windows verwenden, ein Problem damit zu haben.

1030960cookie-checkZeilenenden für Git in Visual Studio Project können nicht normalisiert werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy