wake-up-neo.com

Git-Pull-Fehler: Datei kann nicht erstellt werden (ungültiges Argument)

Ich versuche, das Remote-Repo mit dem lokalen Repo zu synchronisieren, erhalte jedoch folgende Fehler. Einige Dateien (ohne Dateierweiterung) werden auf einem WINDOWS-Computer nicht mit dem lokalen Repository synchronisiert, aber auf einem MAC-Computer konnte die Synchronisierung erfolgreich durchgeführt werden.

Gibt es Konfigurationseinstellungen in WINDOWS, um diesen Fall zu behandeln?

  1. TortoiseGit verwenden
  2. Windows 7 64-Bit-Maschine

FEHLERDETAILS

git.exe clone     --progress -v  "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common"

Cloning into 'C:\Data\GitHub\simility\vishesh-common'...
POST git-upload-pack (200 bytes)
remote: Counting objects: 3912, done.
remote: Compressing objects: 100% (487/487), done.
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done.
Resolving deltas: 100% (1578/1578), done.
remote: Total 3912 (delta 409), reused 0 (delta 0)
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD'

git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13)
30
Amol Dadas

Wenn ich das Protokoll gut lese, haben diese Dateien Namen, die mit "? Ref = users" enden.

Windows erlaubt es Ihnen nicht, ein '?' in einem Dateinamen, so wie es nicht erlaubt, ein "\" oder "*" zu haben. Unter Linux ist es möglich, wenn Sie diese Zeichen entkommen. Unter Windows ist das meines Erachtens überhaupt nicht möglich. Siehe http://msdn.Microsoft.com/en-us/library/windows/desktop/aa365247

Sie werden es mit solchen Namen schwer haben. Ich kann mir keine Idee einfallen lassen, mit der Sie das 1: 1 synchronisieren könnten. Sie können sie sicherlich abrufen und unter sicheren Namen wie _projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users Speichern, aber ich weiß nicht, wie ich das automatisch machen soll oder wie ich Git später über dieses Mapping informieren soll, sorry.

Diese Dateinamen sehen so aus, als ob ihnen HTML-Abfrageparameter angefügt sind. Ist es wirklich erforderlich? Vielleicht ist das nur ein Artefakt, das entfernt werden könnte? Versuchen Sie, mit den Betreuern des Projekts zu sprechen. Vielleicht können sie dieses ungerade Suffix einfach entfernen.

21
quetzalcoatl

Ich bin auf dasselbe Problem gestoßen, wollte diese Dateien jedoch nicht umbenennen oder löschen. Hier ist eine Problemumgehung für den Fall, dass Sie ohne Zugriff auf diese Dateien mit einem Sparse-Checkout leben können:

Gehen Sie in Ihrem Repo in den Ordner .git Und öffnen Sie die Datei config. (Sie können Ihre Konfiguration auch mit tortoise-git bearbeiten, aber ich habe sie hier nicht installiert.) Fügen Sie im Abschnitt [core] Die Zeile hinzu

sparsecheckout = true

dann gehe in den Ordner .git/info und erstelle die Datei sparse-checkout. Füge so etwas wie hinzu

*
!kickstarter/parsers/data/kickstarter/campaigndetails/*

Die erste Zeile enthält alles, während die zweite alle Dateien in kickstarter/parsers/data/kickstarter/campaigndetails/ Ausschließt. Sie sollten nun in der Lage sein, das Repo auszuchecken. Mit Platzhaltern können Sie wahrscheinlich anspruchsvollere Ausschlüsse machen.

35
morty

Ich benutze Bitbucket und es hat die Funktion, dass Sie eine Problemdatei löschen können.

Das ist was ich mache.

  1. Gehen Sie zu Ihrem Repository.
  2. Wählen Sie das Menü "Commit".
  3. Wählen Sie Ihren Zweig, den Sie Problemdatei entfernen möchten.
  4. Gehen Sie zu Ihrer Datei und klicken Sie darauf. Sie gelangen in die Dateiübersicht, in der die Details der Datei angezeigt werden, z. Ihren Code, das Datum und die Uhrzeit der Übertragung dieser Datei usw.
  5. In der oberen rechten Ecke sehen Sie die Schaltfläche mit dem Pfeil nach unten (ähnlich wie bei Alphabet V). Klicken Sie darauf.
  6. Es wird ein Dropdown-Menü angezeigt, in dem Sie die Schaltfläche zum Umbenennen und Löschen auswählen können.
  7. Dann ist es Ihre Wahl, benennt es um oder löscht es. Mit Bedacht wählen.
  8. Nachdem Sie auf eine Schaltfläche geklickt haben. Bitbucket zeigt Ihnen ein Dialogfeld an, in dem Sie die gesagten Schritte ausführen und Ihre Datei mit der Schaltfläche "Festschreiben" festschreiben.
  9. Nach dem Festschreiben können Sie problemlos zu sourcetree zurückkehren und Ihren Code abrufen.
  10. Genießen!
2