2015-11-13 7 views
7

Ich arbeite ein freigegebenes Projekt mit Git für die Versionskontrolle. Ich bin auf Windows, während mein Partner auf Unix ist.Git ziehen ungültige Windows-Dateinamen

Mein Partner hat einige Dateien mit <file1>.txt benannt. Wenn ich versuche, diese Dateien zu ziehen, werden sie nicht akzeptiert, da < und > ungültige Zeichen für Windows sind. Das ist in Ordnung, ich brauche die Dateien nicht zu berühren. Sie werden jedoch meinem Commit als gelöscht hinzugefügt. Also, wenn ich dann drücke, lösche ich diese Dateien, die ich nicht machen möchte.

  1. Ich kann nicht git reset --hard verwenden, da es einen ungültigen Pfad für jedes dieser „gelöschten“ Dateien findet.

  2. Gibt es eine Möglichkeit, diese Dateien von meinen Commits auszuschließen? Ich habe versucht, <file1> zu meinem .git/info/exclude hinzuzufügen, aber das hat nicht funktioniert.

+1

Wie sind diese Dateien in Ihrem Commit aufgetreten? Hast du 'git commit -a' oder' git add' gemacht? Möchten Sie das Commit bearbeiten oder nur diese Dateien aus dem Index entfernen? – Paul

+0

Ich würde persönlich verlangen, dass die Namen mit 'git mv' geändert werden, und Sie sollten danach einen erzwungenen Pull ausführen können, aber das ist eine persönliche Vorliebe. Es ist die einfache Lösung, da Sie diese Dateien bearbeiten können, anstatt mit ihnen etwas zu tun. –

+0

Alternativ, tun Sie es selbst: Installieren Sie das 'git' Paket (und alle erforderlichen Abhängigkeiten) mit dem Cygwin Installer, navigieren Sie zum Checkout Verzeichnis im Cygwin Terminal (zB' cd/cygdrive/c/Users/Nryan6/projects/FooBar'), [erneut ziehen (möglicherweise lokale Änderungen überschreiben; klicken Sie für weitere Informationen)] (http://stackoverflow.com/a/8888015/539810), 'git mv \ .txt file1.txt' (das gleiche tun für andere Dateien) und commit und push. Cygwin übersetzt U + 003C ('<') und U + 003E ('>') zu U + F03C und U + F03E, was Windows erlaubt, aber Cygwin sieht sie als normale '<' and '>' Zeichen. –

Antwort

1

Ignorieren hilft nicht, wenn die Dateien bereits verfolgt werden.

Verwenden Sie Sparse checkout, um diese Dateien zu überspringen.

+1

Hat jemand dies zur Arbeit gebracht? – mvndaai