Je suis nouveau sur Git / GitHub et j'ai rencontré un problème. J'ai créé un projet de test et l'ai ajouté au référentiel local. Maintenant, j'essaie d'ajouter des fichiers / projet au référentiel distant.
Voici ce que j'ai fait (et cela a fonctionné) -
git remote add origin git://github.com/my_user_name/my_repo.git
Maintenant, lorsque j'essaye de pousser le référentiel vers GitHub, en utilisant la commande suivante, j'obtiens l'erreur suivante -
git push origin master
Erreur -
fatal: remote error:
You can't push to git://github.com/my_user_name/my_repo.git
Use [email protected]:my_user_name/my_repo.git
Réponses:
GitHub ne prend pas en charge le transfert sur le protocole Git, ce qui est indiqué par votre utilisation du début de l'URL
git://
. Comme le message d'erreur l'indique, si vous voulez pousser, vous devez utiliser l'URL SSH[email protected]:my_user_name/my_repo.git
ou le protocole "HTTP intelligent" en utilisant l'https://
URL que GitHub vous montre pour votre référentiel.(Mise à jour: à ma grande surprise, certaines personnes ont apparemment pensé que par là je suggérais que "https" signifie "HTTP intelligent", ce que je n'étais pas. Git avait un protocole "HTTP stupide" qui ne permettait pas de pousser avant le «HTTP intelligent» utilisé par GitHub a été introduit - soit peut être utilisé sur l'un
http
ou l' autrehttps
. Les différences entre les protocoles de transfert utilisés par Git sont expliquées dans le lien ci-dessous.)Si vous souhaitez modifier l'URL d'origine, vous pouvez simplement faire:
ou
Plus d'informations sont disponibles dans 10.6 Git Internals - Transfer Protocols .
la source
Utilisez la réponse de Mark Longair , mais assurez-vous d'utiliser le lien HTTPS vers le référentiel:
Vous pouvez utiliser alors
git push origin master
.la source
git push
fonctionne également.La solution utilisée par Mark Longair
git remote set-url...
est assez claire. Vous pouvez également obtenir le même comportement en éditant directement cette section du fichier .git / config:avant:
après:
(Et inversement, l'
git remote set-url...
invocation produit le changement ci-dessus.)la source
Il existe une solution simple à ce problème pour quelqu'un de nouveau:
Modifiez le fichier de configuration dans votre répertoire local .git (
config
). Passezgit:
àhttps:
ci-dessous.la source
J'ai eu ce problème après la mise à niveau du client Git , et soudain, mon dépôt n'a pas pu pousser.
J'ai trouvé qu'une ancienne télécommande avait la mauvaise valeur de
url
, même à travers ma télécommande actuellement active avait la même valeururl
et fonctionnait bien.Mais il y avait aussi le
pushurl
paramètre, donc l'ajouter pour l'ancienne télécommande a fonctionné pour moi:Avant:
REMARQUE: cette partie du fichier "config" était inutilisée depuis des lustres, mais le nouveau client s'est plaint de la mauvaise URL:
J'ai donc ajouté le
pushurl
paramètre à l'ancienne télécommande:la source
Cette erreur se produit lorsque vous clonez un dépôt à l'aide d'un appel comme:
Cela vous définit essentiellement comme un utilisateur pull-only, qui ne peut pas pousser les changements.
J'ai corrigé cela en ouvrant le
.git/config
fichier de mon dépôt et en modifiant la ligne:à:
Ce
ssh+git
protocole avec l'git
utilisateur est le mécanisme d'authentification préféré par Github.Les autres réponses mentionnées ici fonctionnent techniquement, mais elles semblent toutes contourner ssh, vous obligeant à entrer manuellement un mot de passe, ce que vous ne voulez probablement pas.
la source
Si vous allez sur http://github.com/my_user_name/my_repo, vous verrez une zone de texte où vous pouvez sélectionner le chemin git vers votre référentiel. Vous voudrez l'utiliser!
la source
J'ai ajouté ma pubkey à github.com et cela a réussi:
Mais j'ai reçu l'erreur "Vous ne pouvez pas pousser" après avoir mal fait ceci:
Au lieu de faire ce que j'aurais dû faire:
la source
Pour définir
https
globalement au lieu degit://
:la source
Les cmnds ci-dessous résoudront le problème.
la source
Le moyen le plus rapide de surmonter cela est de le remplacer
origin
par la suggestion qu'il donne.Au lieu de
git push origin master
, utilisez:la source