Warum habe ich nach dem Kopieren des Git-Repositorys in ein anderes Verzeichnis geänderte Dateien?
Lesezeit: 3 Minuten
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
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.
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.
10505000cookie-checkWarum habe ich nach dem Kopieren des Git-Repositorys in ein anderes Verzeichnis geänderte Dateien?yes
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 nurgit 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 Originalgit
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