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

8

Ich habe mein persönliches kleines Git Repository auf meinem Laptop. Ich habe gerade die Änderungen vorgenommen und überprüft, dass ich nichts zu begehen habe - jede gestufte und modifizierte Datei wurde erstellt.

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 jemand dazu vorschlagen?

    
Patryk 16.07.2012, 14:09
quelle

7 Antworten

6

Ihre Dateien in Windows haben wahrscheinlich Carriage-Return-Line-Feed-Zeilenenden, und Sie haben wahrscheinlich core.autocrlf in Ihrer Windows-Box. Kopieren Sie es nicht zwischen verschiedenen Plattformen. Erstellen Sie stattdessen ein neues Git-Repository auf der Linux-Box und ziehen Sie aus der Windows-Box. Sie können entweder git bundle oder git daemon auf dem Windows-Computer verwenden, um das Repository verfügbar zu machen. Oder Sie könnten eine leere Repo auf der Linux-Box und git push --mirror von der Windows-Maschine machen und dann klonen, wo die endgültige Version enden soll.

Oder - ziemlich wahrscheinlich können Sie schon ein git reset --hard HEAD machen und es auf der Linux-Box reparieren wie es ist. Möglicherweise sollten Sie alles außer dem .git-Ordner zuerst löschen, um einen vollständig sauberen funktionierenden Baum sicherzustellen.

    
patthoyts 16.07.2012, 14:25
quelle
9

Was ich gemacht habe, renne

%Vor%

um die tatsächlich geänderten Dateien zu erhalten, dann auf alle anderen zurücksetzen

    
Erik Romson 24.01.2013 07:58
quelle
1

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

    
leighman 16.07.2012 14:11
quelle
1

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

    
Peter van der Does 16.07.2012 15:32
quelle
1

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 mit git config core.filemode false beheben konnte.

    
Prachee 25.07.2012 10:31
quelle
0

Wenn Sie nichts zu verlieren haben, tun Sie:

git checkout .

Dadurch wird der Arbeitsbaum auf Ihren vorherigen Commit zurückgesetzt

    
Bruno Peres 23.11.2016 13:21
quelle
0

Wenn Sie mehrere Zweige haben und alle Änderungen gepusht haben, funktioniert diese Lösung möglicherweise

Fügen Sie einfach alle Änderungen hinzu, die Sie sehen, und übernehmen Sie sie in den aktuellen Zweig (zB Master). Dann kassiere einen anderen Zweig (sprich Test) Löschen Sie den Masterzweig lokal (mit der Option -D). Ziehe den Master-Zweig von git

Fertig ..!

    
sarath 31.07.2017 11:20
quelle