web-dev-qa-db-fra.com

GitHub: le clone a réussi, mais la commande a échoué

J'ai quelques problèmes avec git clone. Les fichiers sont téléchargés dans mon dossier git local. Exécuter la commande

git checkout -f HEAD me donne-

Erreur:

'L'incapacité d'écrire une nouvelle erreur dans le fichier d'index causée par le manque d'espace disque'. 

J'ai supprimé manuellement les gros fichiers de mon ordinateur, mais j'obtiens toujours la même erreur.

Cloning into 'ffmpeg'...
remote: Counting objects: 7890, done.  
remote: Compressing objects: 100% (4412/4412), done.
Receiving objects: 100% (7890/7890), 299.75 MiB | 24.19 MiB/s, done.
remote: Total 7890 (delta 3346), reused 7846 (delta 3317)
Resolving deltas: 100% (3346/3346), done.
Checking out files: 100% (7019/7019), done.
fatal: unable to write new index file
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'
15
jamie_y

Lorsque vous clonez, git récupère tous les objets de l'extrémité distante (compressés et stockés dans le répertoire .git). Une fois qu'il dispose de toutes les pièces, il décompresse tous les fichiers nécessaires à la (re) création du répertoire de travail. C’est cette étape qui échoue, faute d’espace. Cela peut être dû à un disque plein ou à un quota de disque dépassé (sur les ordinateurs partagés, des quotas sont souvent appliqués pour éviter que les utilisateurs ne prennent plus que leur juste part d'espace).

Supprimer votre cruft. Assurez-vous que vous n'essayez pas de compresser le noyau Linux ou un tel référentiel monstre dans vos quelques mégaoctets d'espace de compte. 

9
vonbrand

Dans mon cas, mon disque n'était pas plein et voici comment je l'ai résolu:

  1. insérez cd dans le répertoire du projet et annulez la création de tous les fichiers intermédiaires, le cas échéant, en exécutant git reset.
  2. annuler toutes les modifications dans le répertoire de travail en exécutant git checkout *

Après avoir suivi les deux étapes, vous devriez pouvoir voir les fichiers du projet.

7
user3579815

J'ai résolu le problème. Il se trouve que mon disque était plein. Vous pouvez le savoir en exécutant

quota

Mon résultat dit

$ quota

Home Area quota for: jamie_y

Current Usage: 8 GB
Current Limit: 8 GB

Exécutez la commande pour trouver votre utilisation du disque.

The du command shows the disk space used by the files and directories in a directory. The -h option makes the output easier to read, and the -s option summarizes the result. For example,

 du -h -s (quoted from http://linux.about.com/od/commands/a/blcmdl1_dux.htm)

Exécutez rm -rf folderName pour supprimer le dossier/fichier. 

2
jamie_y

Outre les autres possibilités, la principale pourrait être les règles imposées par Windows pour nommer les fichiers. Le clone git et la commande devraient fonctionner correctement sur Linux. 

Pour plus d'informations, regardez ceci - https://github.com/msysgit/msysgit/issues/208

1
Gaurav Khare

Vous rencontrez la même erreur lorsque vous essayez de cloner un référentiel à partir de Visual Studio 2017 (v15.6.0).

Dans mon cas, l'installation de GIT-LFS a résolu le problème localement.

0
salle55