web-dev-qa-db-fra.com

Erreur d'extraction Git: impossible de créer le fichier (argument non valide)

J'essaie de synchroniser le repo distant avec le repo local mais j'obtiens les erreurs suivantes. Certains fichiers (qui n'ont pas été prolongés) ne sont pas synchronisés avec le référentiel local sur la machine WINDOWS, mais j'ai pu synchroniser avec succès sur la machine MAC.

Existe-t-il des paramètres de configuration dans WINDOWS pour gérer un tel cas?

  1. Utilisation de TortoiseGit
  2. Machine Windows 7 64 bits

DÉTAILS DE L'ERREUR

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

Si je lis bien ce journal, ces fichiers ont des noms qui se terminent par "? Ref = users"

Windows ne vous permet pas d'avoir un "?" dans un nom de fichier, tout comme il ne permet pas d'avoir un "\" ou "*". Sous Linux, il est possible, si vous échappez à ces personnages. Sous Windows, je pense que ce n'est pas possible du tout. Voir http://msdn.Microsoft.com/en-us/library/windows/desktop/aa365247

Vous aurez du mal avec de tels noms. En fait, je ne peux trouver aucune idée qui vous permettrait de synchroniser ce 1: 1. Vous pouvez certainement les récupérer et les enregistrer sous des noms sûrs comme _projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users mais je ne sais pas comment faire cela automatiquement, ni comment informer Git plus tard de ce mappage, désolé ..

Ces noms de fichiers semblent avoir un paramètre de requête HTML suffixé. Est-ce vraiment nécessaire? c'est peut-être juste un artefact qui pourrait être supprimé? essayez de parler aux responsables du projet, peut-être qu'ils pourront simplement supprimer ce suffixe étrange?

21
quetzalcoatl

J'ai rencontré le même problème, mais je n'ai pas voulu renommer ou supprimer ces fichiers. Voici donc une solution de contournement au cas où vous pourriez vivre sans accéder à ces fichiers en utilisant une extraction clairsemée:

Allez dans le .git dossier dans votre référentiel et ouvrez le fichier config. (Vous pouvez également modifier votre configuration en utilisant tortoise-git, mais je ne l'ai pas installé ici.) Dans le [core]section ajouter la ligne

sparsecheckout = true

puis allez dans le dossier .git/info et créez le fichier sparse-checkout. Ajoutez quelque chose comme

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

La première ligne inclut tout, tandis que la seconde exclut tous les fichiers dans kickstarter/parsers/data/kickstarter/campaigndetails/. Vous devriez maintenant être en mesure de commander le dépôt. En utilisant des caractères génériques, vous pouvez probablement faire des exclusions plus sophistiquées.

35
morty

J'utilise bitbucket et il a une fonction que vous pouvez supprimer un fichier problème.

C'est ce que je fais.

  1. Accédez à votre référentiel.
  2. Choisissez le menu "commit".
  3. Sélectionnez la branche dont vous souhaitez supprimer le fichier problématique.
  4. Accédez à votre fichier et cliquez dessus. Vous atteindrez l'aperçu du fichier qui montre les détails du fichier, par exemple votre code, la date et l'heure de ce fichier engagé, etc.
  5. Regardez dans le coin supérieur droit, vous verrez le bouton avec une flèche vers le bas (similaire à l'alphabet v) cliquez dessus.
  6. Il déroulera et vous montrera le bouton renommer et supprimer le bouton à l'intérieur.
  7. Ensuite, c'est votre choix, le renommer ou le supprimer. Choisis sagement.
  8. Après avoir cliqué sur un bouton. Bitbucket vous montrera une boîte de dialogue faire comme il l'a dit et valider votre fichier avec le bouton de validation.
  9. Après validation, vous pouvez retourner à sourcetree et extraire votre code sans problème.
  10. Prendre plaisir!
2
Anukul Limpanasil