Aller au contenu principal

fatal: detected dubious ownership in repository

Cette erreur signifie que le dossier du dépôt appartient à un autre utilisateur que celui qui lance Git. C'est une protection de sécurité ajoutée dans Git 2.35.2, pas une corruption. Une seule commande suffit à la corriger.

Explication de l'erreur

Ce que cette erreur signifie

Depuis la version 2.35.2, Git vérifie que le dossier du dépôt appartient bien à l'utilisateur qui lance la commande. S'il appartient à quelqu'un d'autre (root, www-data, un autre compte), Git s'arrête immédiatement. Cela te protège d'une vraie attaque : un dossier .git malveillant déposé dans un répertoire partagé pourrait exécuter du code sur ta machine via des hooks ou des réglages de config.

Causes principales

Pourquoi cela se produit

Volumes Docker et conteneurs

Les fichiers montés dans un conteneur appartiennent souvent à root ou à l'UID de l'hôte, alors que le conteneur lance Git avec un autre utilisateur. Git voit l'écart et refuse.

WSL et disques réseau

Les dépôts sur un disque Windows accédés depuis WSL (sous /mnt/c), ou sur des partages NTFS/réseau, peuvent afficher un propriétaire qui ne correspond pas à ton utilisateur Linux.

Serveurs, CI et sudo

Sur un serveur, un utilisateur de déploiement possède le code mais tu te connectes avec un autre compte. En CI, l'utilisateur du checkout diffère de celui du build. Un seul sudo git ... peut aussi changer le propriétaire de certains fichiers.

Solution étape par étape

Comment corriger

Deux options propres : déclarer le dossier sûr, ou en devenir propriétaire.

Option 1 : déclarer le dossier sûr

Si tu fais confiance au dépôt, copie la commande exacte que Git suggère dans le message d'erreur. Elle n'affecte que ce chemin.

Option 2 : corriger la propriété

Quand les fichiers devraient vraiment t'appartenir, change plutôt le propriétaire. Pour les conteneurs et la CI, le joker est courant car l'environnement est contrôlé.

Bonnes pratiques

Comment éviter cette erreur

Évite sudo avec Git

Lancer sudo git ... crée des fichiers appartenant à root dans ton dépôt et provoque cette erreur plus tard. Clone et travaille avec ton utilisateur normal.

Aligne les UIDs dans les conteneurs

Sous Docker, lance le conteneur avec ton UID de l'hôte (--user $(id -u):$(id -g)) ou intègre une entrée safe.directory dans l'image pour ne pas casser les builds.

Des exceptions ciblées

Préfère une entrée safe.directory par chemin plutôt que le joker "*", surtout sur une machine partagée. Cette protection existe pour une bonne raison.

A

GitQuest est conçu par Anaïs (nouvelle fenêtre), développeuse web et responsable pédagogique, spécialisée en formations tech et accessibilité numérique.

Questions sur dubious ownership

Les erreurs Git deviennent des indices, pas des blocages

GitQuest t'apprend à lire ce que Git te dit vraiment. Entraîne-toi dans un simulateur de terminal sécurisé et transforme chaque message d'erreur en enquête résolue.

Commencer à pratiquer