web-dev-qa-db-fra.com

Impossible de maitriser Git-Push sur Github - 'Origin' ne semble pas être un référentiel git / autorisation refusée

Cette question est liée à mon problème en compréhension de la base, de la branche et de la fusion , et au problème

Comment pouvez-vous vous engager sur votre compte github si vous avez un membre d’équipe dans votre liste à distance?

J'ai découvert que d'autres personnes ont eu le même problème. Le problème semble être lié à /etc/xinet.d/.

Problème: impossible de transférer ma branche locale vers ma branche principale sur Github

Je cours

git Push Origin master

Je reçois

fatal: 'Origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Le message d'erreur me suggère que la branche 'Origine' ne se trouve pas dans mon référentiel git local. De cette façon, Git cesse de se connecter à Github.

C'est étrange, car je n'ai pas supprimé la branche 'Origine'.

Mon arbre est

  dev
* master
  ticgit
  remotes/Math/Math
  remotes/Math/master
  remotes/Origin/master
  remotes/Masi/master

Comment pouvez-vous pousser votre branche locale vers Github , alors que vous avez une branche de teammate dans votre Git local?


La réponse de VonC résout le problème principal. Je mets un passephares à mes clés ssh.

Je cours

$git Push github master     

Je reçois

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Il semble que je dois donner la phrase secrète de Git en quelque sorte.

Comment pouvez-vous obliger Github à demander votre phrase secrète plutôt que de compter sur la clé ssh?

Qu'est-ce que

$ git config --get-regexp '^(remote|branch)\.'

return (exécuté dans votre dépôt git)?

Origin est simplement une convention de dénomination par défaut pour faire référence à un référentiel Git distant.

S'il ne fait pas référence à GitHub (mais plutôt un chemin d'accès au référentiel de votre coéquipier, chemin qui risque de ne plus être valide ou disponible), ajoutez simplement une autre origine, comme dans ceci entrée Bloggitation

$ git remote add Origin2 [email protected]:myLogin/myProject.git
$ git Push Origin2 master

(J'utiliserais plutôt le nom "github" plutôt que "origine" ou "origine2")


Autorisation refusée (publickey).
fatal: l'extrémité distante a raccroché de manière inattendue

Vérifiez si votre identité gitHub est correctement déclarée dans votre référentiel Git local, comme indiqué dans la section Guide de l’aide GitHub . (user.name et github.name - et github.token)

Ensuite, blog stonean suggère (comme le fait Marcio Garcia ):

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan ajoute: crée un fichier de configuration

La solution consistait à créer un fichier de configuration sous ~/.ssh /, comme indiqué à la section en bas de la section OS X de cette page .

Voici le fichier que j'ai ajouté, conformément aux instructions de la page, et mes envois ont recommencé à fonctionner:

Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

Vous pouvez également poster le résultat de

ssh -v [email protected]

pour avoir plus d’informations sur les raisons pour lesquelles GitHub ssh connection vous refuse.

Vérifiez également que vous avez entré correctement votre clé publique (elle doit se terminer par '== ').
Ne collez pas votre clé privée, mais votre clé publique. Une clé publique ressemblerait à quelque chose comme:

ssh-rsa AAAAB3<big string here>== [email protected] 

(Remarque: avez-vous utilisé un mot de passe pour vos clés ssh? Ce serait plus facile sans mot de passe)

Vérifiez également l’URL utilisée lors de la poussée ([email protected]/..., ne pas git://github.com/...)

Vérifiez que vous avez un agent SSH à utiliser et mettez en cache votre clé.

Essaye ça:

 $ ssh -i path/to/public/key [email protected]

Si cela fonctionne, cela signifie que votre clé n'est pas envoyée à GitHub par votre client ssh.

96
VonC

Ceci est un problème avec votre télécommande. Quand vous faites git Push Origin master, Origin est la télécommande et master est la branche que vous poussez.

Quand tu fais ça:

git remote

Je parie que la liste n'inclut pas Origin. Pour rajouter la télécommande d'origine:

git remote add Origin [email protected]:your_github_username/your_github_app.git

Ou, s'il existe mais que son format est incorrect:

git remote rm Origin
git remote add Origin [email protected]:your_github_username/your_github_app.git
28
Sarah Mei

La réponse de VonC est la meilleure, mais la partie qui a fonctionné pour moi était très simple et est en quelque sorte enterrée parmi beaucoup d'autres réponses possibles. Si vous êtes comme moi, vous avez rencontré ce problème lors de l'exécution d'un didacticiel "Prise en main de Rails" et vous n'avez PAS configuré vos clés SSH publiques/privées.

Si oui, essayez ceci:

  1. $>cd ~/.ssh

  2. $>ls

  3. Si la sortie de ls est known_hosts et rien d’autre, visitez: http://help.github.com/mac-key-setup/ et suivez les instructions à partir de la section "Génération d’une clé".

Après avoir exécuté ces instructions, ma commande "git Push Origin master" a fonctionné.

10
johnnygoodman

J'ai le même problème et je pense que le pare-feu bloque le protocole Git. Donc, au final, je dois recourir à https: // pour chercher et pousser. Cependant, cela invitera toujours l'utilisateur à entrer le mot de passe ...

voici l'exemple de ce qui fonctionne pour moi (juste pour partager avec ceux qui ne peuvent pas utiliser git: // protocol :)

git fetch https://[user-name]@github.com/[user-name]/[project].git

si cela fonctionne, vous pouvez supprimer l’origine et la remplacer par

git remote rm Origin  
git remote add Origin https://[user-name]@github.com/[user-name]/[project].git
4
ken

Je pense que c'est un autre cas de messages d'erreur git induisant en erreur. Habituellement, quand j'ai vu cette erreur, c'est dû à des problèmes de ssh. Avez-vous ajouté votre clé publique ssh à votre compte github?

Edit: De plus, l'article de forum xinet.d fait référence à l'exécution du démon git en tant que service afin que les utilisateurs puissent extraire de votre système. Il n'est pas nécessaire d'exécuter git-daemon pour Push to github.

1
Aaron

J'ai le même problème et je viens d'ajouter le contenu de ~/.ssh/id_rsa.pub à mon compte dans GitHub. Après cela, essayez à nouveau git Push Origin master, ça devrait marcher.

1
Julio Menendez

J'ai eu ce problème et essayé diverses solutions pour le résoudre, y compris beaucoup de celles énumérées ci-dessus (fichier de configuration, débogage ssh, etc.). En fin de compte, je l'ai résolu en incluant le commutateur - u dans le git Push, conformément aux instructions de github lors de la création d'un nouveau référentiel sur le site - Nouveau dépôt Github

0
sjpknight

La chose essentielle à retenir est que "Origin" n’est pas la valeur que vous devrez peut-être utiliser… cela a fonctionné pour moi lorsque j’ai remplacé "Origin" par le nom du repo.

0
ATSiem

Une possibilité que les réponses ci-dessus n'abordent pas est que vous ne pouvez pas avoir un accès SSH à partir de votre Shell. Autrement dit, vous pouvez vous trouver dans un réseau (certains réseaux de collèges le font) où le service SSH est bloqué. Dans ce cas, vous pourrez non seulement obtenir des services github, mais également tout autre service SSH. Vous pouvez tester si tel est le problème en essayant d'utiliser un autre service SSH. C'était le cas avec moi.

0
Sravan