Warum habe ich nach dem Kopieren des Git-Repositorys in ein anderes Verzeichnis geänderte Dateien?

Lesezeit: 3 Minuten

Benutzer-Avatar
Patryk

Ich habe mein persönliches kleines Git-Repository auf meinem Laptop. Ich habe gerade die Änderungen festgeschrieben und überprüft, dass ich nichts festschreiben muss – jede bereitgestellte und geänderte Datei wurde festgeschrieben.

Danach habe ich alle Dateien von diesem Repo an einen anderen Ort kopiert und boom! Ich habe nicht festgeschriebene Änderungen.

Ich glaube, ich vermisse einige grundlegende Git-Regeln. Kann mir das jemand vorschlagen?

  • Soll die neue Kopie auch ein Git-Repository sein?

    – Bluesmann

    16. Juli 2012 um 14:29 Uhr

  • Sie sollten die Information angeben, dass das ursprüngliche Repo auf Windows und die Kopie auf Ubuntu war. Das macht einen großen Unterschied. Angesichts dieser Informationen glaube ich, dass die Antwort von Parrhoyts richtig ist.

    – suvayu

    16. Juli 2012 um 14:31 Uhr

  • Tut git diff zeigen Ihnen tatsächliche Unterschiede? Oder siehst du nur git status Sagen Sie, Sie haben Veränderungen? Möglicherweise stoßen Sie auf die Tatsache, dass der Index einige Metadaten zu jeder Datei speichert – die Kopie hat also andere Zeitstempel als das Original git möglicherweise melden, dass diese Dateien nicht mehr mit dem übereinstimmen, was der Index für richtig hält, obwohl der Inhalt der Dateien immer noch identisch sein kann.

    – Twalberg

    16. Juli 2012 um 15:32 Uhr

  • @Twalberg git diff zeigt, dass ganze Dateien unterschiedlich sind – alle Zeilen mit markieren + und wieder mit -. Ich vermute das Problem mit Zeilenenden.

    – Patryk

    17. Juli 2012 um 12:17 Uhr

  • Angesichts des gleichen Problems habe ich einfach jede Datei gespeichert, die als geändert angesehen wird (eigentlich die gesamte App), und sie dann in den Papierkorb geworfen.

    – die Freiheitsbanane

    7. Januar 2016 um 9:28 Uhr

Benutzer-Avatar
Erik Romson

Was ich getan habe, rennen

git diff | grep -B 2 @@ | grep +++

Um die tatsächlich geänderten Dateien zu erhalten, kehren Sie dann zu allen anderen zurück

  • Hat für mich funktioniert. Zeigt die tatsächlich geänderten Dateien an. Checken Sie dann diejenigen aus, die über den Git-Status aufgelistet sind und nicht im Git-Diff erscheinen

    – Ian Lunn

    21. Juni 2014 um 13:44 Uhr

  • das hat bei mir aus irgendeinem Grund nicht funktioniert, aber ich war mir ziemlich sicher, dass es keine weiteren Whitespace-Änderungen geben würde, also a git diff -w hat es geschafft

    – Haschbraun

    15. Februar 2021 um 4:26 Uhr

Ihre Dateien unter Windows haben wahrscheinlich Wagenrücklauf-Zeilenvorschub-Zeilenenden und Sie haben wahrscheinlich core.autocrlf true in Ihrer Windows-Box. Kopieren Sie es nicht so zwischen verschiedenen Plattformen. Erstellen Sie stattdessen ein neues Git-Repository auf der Linux-Box und ziehen Sie es aus der Windows-Box. Sie können entweder verwenden git bundle oder git daemon auf dem Windows-Computer, um das Repository verfügbar zu machen. Oder Sie könnten ein Bare-Repo auf der Linux-Box erstellen und git push --mirror vom Windows-Rechner darauf klonen und dort klonen, wo die endgültige Version landen soll.

Oder – sehr wahrscheinlich können Sie bereits einfach eine tun git reset --hard HEAD und reparieren Sie es auf der Linux-Box so wie es ist. Möglicherweise sollten Sie zuerst alles außer dem .git-Ordner löschen, um einen vollständig sauberen Arbeitsbaum zu gewährleisten.

Wenn Sie nichts zu verlieren haben, tun Sie Folgendes:

git checkout .

Dadurch wird der Arbeitsbaum auf Ihren vorherigen Commit zurückgesetzt

Ändern sich die Berechtigungen zwischen den Ordnern? Git registriert die Änderung der Berechtigungen.

Das Kopieren von Windows nach Linux führt zu einem Unterschied bei den Dateirechten, diese Änderungen werden auch von git verfolgt.

Benutzer-Avatar
Prachee

Ich stehe vor dem gleichen Problem. Ich habe jedoch Dateien vom Host-Linux-System auf ein Virtual Box-Gastsystem kopiert. Einige Links werden gelöscht, während einige Dateiberechtigungen geändert wurden, was ich beheben konnte, indem ich git config core.filemode false ausführte.

1050500cookie-checkWarum habe ich nach dem Kopieren des Git-Repositorys in ein anderes Verzeichnis geänderte Dateien?

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

Privacy policy