Dans mon dépôt git, chaque fois que je fais une commande git comme git status
o git log
j'obtiens l'erreur :fatal: bad config file line 1 in .git/config
Comment reconstruire ce fichier ou un nouveau ?
Réponses
Trop de publicités?Tout d'abord, une corruption de fichier peut être un symptôme de problèmes de système de fichiers (c'était mon cas), donc pour éviter toute perte de données supplémentaire, démarrez en mode de secours, et avant de monter la partition exécuter l'utilitaire de vérification du disque sur elle (par exemple fsck -n
o xfs_repair -n
).
Mais si vous utilisez Jenkins puis de trouver la version corrompue .git/config
Le dossier peut ne pas être facile. Il est stocké localement en deux exemplaires au moins :
- dans la copie locale du repo distant cloné par Jenkins en
<JENKINS_HOME>/<remote_repo_name>
ET - mis en cache dans l'une des nombreuses
git-*
dossiers dans<JENKINS_HOME>/caches
.
J'ai obtenu cette erreur sous Windows 8.1 avec le client GitHub pour Windows 2.14.*.
Aucun des dépôts git clonés dans mon local n'était accessible. Les noms des branches, les fichiers modifiés, l'historique, etc. n'étaient pas visibles.
Ouvrir le Shell Git et essayer de vérifier l'état du dépôt en utilisant git status
donnait un message d'erreur fatal: bad config file ... at C:\Users\MyUser\AppData\Local\GitHub\PortableGit_xxxxx06exx6fdf878271f7fe636a147ff37326ad\etc\gitconfig
J'ai donc supprimé le fichier gitconfig à cet endroit et j'ai fermé le shell Git et le client Git. J'ai redémarré le client Git et le dépôt est redevenu normal.
Pour moi, j'ai ouvert le fichier de configuration et supprimé tout ce qu'il contenait. J'ai sauvegardé le référentiel et j'ai re-cloné le référentiel. J'ai ensuite appliqué manuellement mes modifications à partir du référentiel sauvegardé.
Il faut noter que les informations de suivi à distance seront perdues lorsque la configuration sera effacée. Vous pouvez ajouter à nouveau l'hôte distant, mais cela s'est avéré fastidieux pour moi.
Le mieux qu'ils puissent faire est de copier tous leurs fichiers dans une autre route à l'exception du dossier .git puis de faire un clone du dernier commit qui a réussi à télécharger et de coller les fichiers qui ont été déplacés vers l'autre route afin qu'ils soient écrasés et permettent le nouveau commit.
1 votes
Pouvez-vous afficher le contenu du fichier ?
0 votes
Selon le bloc-notes, c'est vide.
0 votes
Y a-t-il des commits dans votre dépôt ? Si non, supprimez simplement le
.git
et réinitialiser un dépôt git vide avecgit init
0 votes
Il y avait des commits, j'ai fini par re-cloner depuis github et copier les changements dans le nouveau répertoire.
1 votes
Je pense que vous pouvez aller directement dans le dossier .git et éditer le fichier de configuration dans n'importe quel éditeur et le sauvegarder. J'ai le même cas lorsque j'essaie d'éditer le fichier en ligne de commande. fatal : mauvais fichier de configuration ligne 1 dans .git/config (ce problème peut être dû au fait que vous avez laissé les crochets '[']).
0 votes
Supprimez les espaces vides de C:\ProgramData /Git/config ....it fonctionnera très bien.