2010-09-10 7 views
14

Ce que j'essaie de faire est un clone git sur Windows, mais le référentiel parent existe dans une machine Unix. Suis le clonage en utilisant ssh pour obtenir un clone d'UNIX vers Windows, et j'obtiens cette erreur bizarre. Cela se produit lors de l'étape de vérification d'un clone git.erreur: git checkout-index: impossible de créer le fichier

Quelqu'un peut-il m'aider?

+1

J'ai fait face au même problème lors du clonage de linux-next tree sur une machine Windows. Il donne une erreur: "erreur: impossible de créer des pilotes de fichiers/gpu/drm/nouveau/core/subdev/i2c/aux.c (aucun fichier ou répertoire)" Je ne sais toujours pas la raison pour laquelle il échoue et chaque fois à la même fichier. – Adil

+0

Voir aussi http://stackoverflow.com/questions/14811991/git-checkout-error-unable-to-create-file. – Vacilando

Répondre

2

Un problème commun est deux fichiers dont les noms ne diffèrent que par case - git suppose un système sensible à la casse. Si le référentiel contient à la fois FOO et foo, la tentative de création l'une après l'autre échouera.

7

était votre répertoire ainsi que vos noms de fichiers trop longtemps pour Windows? Je suis tombé sur ce problème une fois, et il a été résolu lorsque j'ai essayé de cloner dans un répertoire inférieur.

+0

Je suis tombé sur le même problème avant où la longueur de l'adresse dans Windows était plus de 256 ou quelque chose, mais maintenant cette erreur vient pour de nombreux fichiers qui ne sont pas trop profonds. Merci pour les suggestions ... D'autres causes? –

+0

@Senthil: Pourrait-il être la longueur du nom de fichier individuel lui-même? Je ne serais pas surpris si la longueur des noms de fichiers individuels peut avoir une limite inférieure à cela. –

24

La réponse devrait être: nous ne pouvons pas créer un fichier nommé aux.c dans windows!

Voir http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx Ne pas utiliser les noms de périphériques réservés suivants pour le nom d'un fichier: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1 , LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 et LPT9. Évitez également ces noms suivis immédiatement d'une extension; par exemple, NUL.txt n'est pas recommandé. Pour plus d'informations, voir Espaces de noms.

+0

Eh bien [je peux] (https://www.dropbox.com/s/sc4l4d77087p4k9/waux.png?dl=1) pourquoi git ne peut pas, je me demande? –

+0

Cela a fonctionné pour moi. renommé con.js et était bon d'y aller! Merci! – drj

+0

@zespri probablement parce que git pour Windows utilise une API Windows qui filtre de tels noms de fichiers. 'touch aux.c' dans git bash fonctionne, par exemple. Mais créer un tel fichier dans 'explorer' entraîne une erreur. – andrybak

Questions connexes