152 votes

Git/GitHub ne peut pas pousser vers master

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 dépôt local. J'essaie maintenant d'ajouter des fichiers/projets au dépôt distant.

Voici ce que j'ai fait (et ça a marché) -

git remote add origin git://github.com/my_user_name/my_repo.git

Maintenant, lorsque j'essaie de pousser le dépôt 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 git@github.com:my_user_name/my_repo.git

0 votes

Il y a un lien d'aide ( aide.github.com ) au bas de toutes les pages github. L'aide décrit de nombreux sujets, dont celui-ci. Je vous suggère de les lire, puis de poser des questions sur les points spécifiques que vous ne comprenez pas.

21 votes

Si jamessan avait indiqué un endroit précis dans les pages d'aide, cela aurait été plus utile.

1 votes

244voto

Mark Longair Points 93104

GitHub ne prend pas en charge le push via le protocole Git, ce qui est indiqué par l'utilisation de l'URL commençant par git:// . Comme le dit le message d'erreur, si vous voulez pousser, vous devez utiliser soit l'URL SSH git@github.com:my_user_name/my_repo.git ou le protocole "smart HTTP" en utilisant l'option https:// URL que GitHub vous montre pour votre dépôt.

(Mise à jour : à ma grande surprise, certaines personnes ont apparemment pensé que je suggérais par là que "https" signifie "smart HTTP", ce qui n'est pas le cas. Git avait un protocole "dumb HTTP" qui ne permettait pas le "pushing" avant que le "smart HTTP" utilisé par GitHub ne soit introduit - l'un ou l'autre pouvait être utilisé sur l'un ou l'autre des protocoles suivants http o https . Les différences entre les protocoles de transfert utilisés par Git sont expliquées dans le lien ci-dessous).

Si vous voulez changer l'URL d'origine, vous pouvez simplement le faire :

git remote set-url origin git@github.com:my_user_name/my_repo.git

ou

git remote set-url origin https://github.com/my_user_name/my_repo.git

De plus amples informations sont disponibles dans 10.6 Internes de Git - Protocoles de transfert .

0 votes

J'ai donc changé l'URL et réessayé le push, mais j'ai maintenant cette erreur - ERROR : my_user_name/my_repo.git doesn't exist. L'avez-vous entré correctement ? fatal : The remote end hung up unexpectedly.

0 votes

L'URL que vous avez définie est-elle bien celle que vous pouvez copier-coller depuis la page de votre dépôt sur GitHub ? (C'est sensible à la casse, d'ailleurs).

0 votes

Eh bien, le dépôt n'a pas encore été créé sur github, donc lorsque j'essaye github.com/mon_nom_d_utilisateur/mon_repo ... pas sûr que ce soit ce que vous vouliez dire.

37voto

Abdo Points 3360

Utilisez La réponse de Mark Longair mais assurez-vous d'utiliser le lien HTTPS vers le référentiel :

git remote set-url origin https://github.com/my_user_name/my_repo.git

Vous pouvez alors utiliser git push origin master .

1 votes

Cela fonctionne pour moi. Ensuite, il suffit de taper git push fonctionne également.

13voto

Purplejacket Points 307

La solution de Mark Longair utilisant git remote set-url... est très clair. Vous pouvez également obtenir le même comportement en modifiant directement cette section du fichier .git/config :

avant :

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/my_user_name/my_repo.git

après :

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:my_user_name/my_repo.git

(Et inversement, le git remote set-url... invocation produit le changement ci-dessus).

2voto

ParamQuery Points 11

Il existe une solution simple à ce problème pour les novices :

Modifiez le fichier de configuration dans votre répertoire local .git ( config ). Modifier git: a https: ci-dessous.

[remote "origin"]
    url = https://github.com/your_username/your_repo

1 votes

Incorrect, le protocole https ne permet pas les poussées. Voir : Livre "Pro Git", section 4.1.4 "Protocole HTTP/S". Lien : git-scm.com/book/fr/v2

0 votes

@KevinJ.Rice : uhm, où est-ce que ça dit que ? Github utilise le protocole HTTP intelligent et cela permet de faire des pushs. très bien .

0voto

CambridgeMike Points 1988

Si vous allez à http://github.com/my_user_name/my_repo vous verrez une zone de texte où vous pouvez sélectionner le chemin git de votre dépôt. Vous voudrez l'utiliser !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X