Erreurs de clonage HTTPS
Il existe quelques erreurs courantes lors de l'utilisation de HTTPS avec Git. Ces erreurs indiquent généralement que vous avez une ancienne version de Git ou que vous n'avez pas accès au dépôt.
Voici un exemple d'erreur HTTPS que vous pouvez recevoir :
> error: The requested URL returned error: 401 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs
> fatal: HTTP request failed
> Error: https://HOSTNAME/USER/REPO.git/info/refs not found: did you run git
> update-server-info on the server?
Vérifiez votre version de Git
Il n'existe aucune version minimale de Git nécessaire pour interagir avec GitHub Enterprise Server, mais nous avons constaté que la version 1.7.10 était une version stable et confortable disponible sur de nombreuses plateformes. Vous pouvez toujours télécharger la dernière version sur le site web Git.
Vérifiez que le dépôt distant est correct
Le référentiel que vous essayez d'extraire doit exister sur votre instance GitHub Enterprise Server, et l'URL respecte la casse.
Vous pouvez trouver l'URL du dépôt local en ouvrant la ligne de commande et en tapant git remote -v
:
$ git remote -v
# View existing remotes
> origin https://github.com/ghost/reactivecocoa.git (fetch)
> origin https://github.com/ghost/reactivecocoa.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# Change the 'origin' remote's URL
$ git remote -v
# Verify new remote URL
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
Vous pouvez également modifier l'URL via notre application GitHub Desktop.
Fournissez un jeton d'accès
Pour accéder à GitHub, vous devez vous authentifier avec un personal access token au lieu de votre mot de passe. Pour plus d'informations, consultez « Gestion de vos jetons d'accès personnels ».
Vérifier vos autorisations
Lorsque vous êtes invité à entrer un nom d'utilisateur et un mot de passe, veillez à utiliser un compte ayant accès au dépôt.
Astuce : Si vous ne souhaitez pas entrer vos informations d'identification chaque fois que vous interagissez avec le dépôt distant, vous pouvez activer la mise en cache des informations d'identification. Si vous utilisez déjà la mise en cache des informations d'identification, vérifiez que votre ordinateur dispose des informations d'identification correctes mises en cache. Des informations d'identification incorrectes ou obsolètes entraînent l'échec de l'authentification.
Utilisez SSH à la place
Si vous avez déjà configuré des clés SSH, vous pouvez utiliser l'URL de clone SSH au lieu de HTTPS. Pour plus d'informations, consultez « À propos des référentiels distants ».
Erreur : Dépôt introuvable
Si vous voyez cette erreur lors du clonage d'un référentiel, cela signifie que le référentiel n'existe pas, que vous n'êtes pas autorisé à y accéder ou que votre instance GitHub Enterprise Server est en mode privé. Il existe quelques solutions à cette erreur, en fonction de la cause.
Vérifiez l'orthographe.
Les fautes de frappe peuvent arriver, et les noms des dépôts respectent la casse. Si vous essayez de cloner git@HOSTNAME:user/repo.git
, mais que le dépôt se nomme en fait User/Repo
, vous recevrez cette erreur.
Pour éviter cette erreur, lors du clonage, copiez et collez toujours l'URL de clone à partir de la page du dépôt. Pour plus d'informations, consultez « Clonage d’un dépôt ».
Pour mettre à jour le dépôt distant sur un dépôt existant, consultez « Création de dépôt distants ».
Vérification de vos autorisations
Si vous essayez de cloner un dépôt privé mais que vous n'êtes pas autorisé à afficher le dépôt, vous recevrez cette erreur.
Vérifiez que vous avez accès au dépôt en vertu des autorisations suivantes :
- Propriétaire du dépôt
- Collaborateur sur le dépôt
- Membre d'une équipe ayant accès au dépôt (si celui-ci appartient à une organisation)
Vérifiez votre accès SSH
Dans de rares cas, il se peut que vous n'ayez pas l'accès SSH approprié à un dépôt.
Vous devez vérifier que la clé SSH que vous utilisez est attachée à votre compte personnel sur GitHub Enterprise Server. Vous pouvez le vérifier en tapant ce qui suit sur la ligne de commande :
$ ssh -T git@HOSTNAME
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
Pour plus d'informations, consultez Ajout d'une nouvelle clé SSH à votre compte GitHub.
Vérifiez si votre instance est en mode privé
Si votre administrateur de site a activé le mode privé sur votre instance de GitHub Enterprise, les clones anonymes sur git://
seront désactivés. Si vous ne parvenez pas à cloner un dépôt, contactez votre administrateur de site.
Vérifiez que le dépôt existe vraiment
Si tout le reste échoue, vérifiez que le référentiel existe réellement sur votre instance GitHub Enterprise Server. Si vous essayez de pousser vers un dépôt qui n'existe pas, vous recevrez cette erreur.
Erreur : Le dépôt distant principal fait référence à une référence inexistante. Impossible d'effectuer l'extraction
Cette erreur se produit si la branche par défaut d'un référentiel a été supprimée sur votre instance GitHub Enterprise Server.
La détection de cette erreur est simple ; Git vous avertit lorsque vous essayez de cloner le dépôt :
$ git clone https://HOSTNAME/USER/REPO.git
# Clone a repo
> Cloning into 'repo'...
> remote: Counting objects: 66179, done.
> remote: Compressing objects: 100% (15587/15587), done.
> remote: Total 66179 (delta 46985), reused 65596 (delta 46402)
> Receiving objects: 100% (66179/66179), 51.66 MiB | 667 KiB/s, done.
> Resolving deltas: 100% (46985/46985), done.
> warning: remote HEAD refers to nonexistent ref, unable to checkout.
Pour corriger l'erreur, vous devez être administrateur du référentiel sur votre instance GitHub Enterprise Server. Vous devrez changer la branche par défaut du dépôt.
Après cela, vous pourrez obtenir la liste de toutes les branches disponibles à partir de la ligne de commande :
$ git branch -a
# Lists ALL the branches
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-main
Ensuite, il vous suffira de basculer vers votre nouvelle branche :
$ git checkout new-main
# Create and checkout a tracking branch
> Branch new-main set up to track remote branch new-main from origin.
> Switched to a new branch 'new-main'