83 votes

Incapable de maître Git-poussoir à Github

Cette question est liée à mon problème dans la compréhension de rebase, de la branche et de fusion, et pour le problème

Comment pouvez-vous vous engager à votre compte github que vous avez un coéquipier dans votre liste?

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 pousser ma branche locale de ma branche master sur Github

- Je exécuter

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" n'est pas dans mon dépôt git local. De cette façon, Git cesse de se connecter à Github.

Ce qui est étrange, car je n'ai pas enlevé la branche "origine".

Mon arbre git est

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

Comment pouvez-vous pousser votre agence locale pour Github, alors que vous avez un coéquipier succursale dans votre local Git?


VonC réponse résout le problème principal. J'ai mis un passphares à mes clés ssh.

- Je exécuter

$git push github master     

Je reçois

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

Il semble que j'ai besoin de donner le mot de passe pour Git en quelque sorte.

Comment pouvez-vous faire Github demander votre mot de passe plutôt que de compter sur la clé ssh?

96voto

VonC Points 414372

Ce n'

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

retourne (exécutée à l'intérieur de votre dépôt git) ?

L'origine est juste un défaut de convention de nommage pour se référant à une distance dépôt Git.

Si elle ne fait pas référence à GitHub (mais plutôt un chemin d'accès à votre coéquipier de référentiel, le chemin d'accès qui peuvent ne plus être valides ou disponible), il suffit d'ajouter une autre origine, comme dans cette Bloggitation entrée

$ git remote add origin2 git@github.com:myLogin/myProject.git
$ git push origin2 master

(En fait, je peux utiliser le nom de "github", plutôt que "d'origine" ou "origin2')


Permission denied (publickey).
fatal: L'extrémité distante accroché de façon inattendue

Vérifiez si votre gitHub identité est correctement déclaré dans votre dépôt Git local, comme mentionné dans le GitHub guide d'Aide. (à la fois de l'utilisateur.nom et github.nom -- et github.jeton)

Ensuite, stonean blog l'indique (comme Marcio Garcia):

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan ajoute: créer un fichier de config

La solution a été de créer un fichier de config sous ~/.ssh/ comme indiqué au bas de l'OS X section de cette page.

Voici le fichier que j'ai ajouté, selon les instructions sur la page, et ma pousse a commencé à travailler à nouveau:

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

Vous pouvez également afficher le résultat de

ssh -v git@github.com

pour avoir plus d'informations sur les raisons de GitHub connexion ssh rejette.

Vérifiez également que vous n'entrez correctement votre clé publique (il doit prendre fin avec '==').
Ne collez pas votre clé privée, mais votre public. Une clé publique ressemblerait à quelque chose comme:

ssh-rsa AAAAB3<big string here>== tek...@gmail.com 

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

Vérifiez également l'url utilisée lors de la poussée (git@github.com/..., pas git://github.com/...)

Vérifiez que vous disposez d'un Agent SSH à utiliser et à mettre en cache vos clés.

Essayez ceci:

 $ ssh -i path/to/public/key git@github.com

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

28voto

Sarah Mei Points 10673
<p>Il s’agit d’un problème avec votre télécommande. Quand vous faites <code></code> , <code></code> est la télécommande et <code></code> est la branche que vous poussez.<p>Lorsque vous procédez comme suit :</p><pre><code></code></pre><p>Je parie que la liste ne comprend pas <code></code> . Pour rajouter l’origine distant :</p><pre><code></code></pre><p>Ou, si elle existe mais est incorrectement mise en forme :</p><pre><code></code></pre></p>

11voto

johnnygoodman Points 343

VonC de réponse est meilleur, mais la partie qui a fonctionné pour moi a été super simple et est une sorte de enterrées parmi beaucoup d'autres réponses possibles. Si vous êtes comme moi, vous avez rencontré ce problème lors de l'exécution d'une "prise en main avec des rails" tutoriel et que vous n'avait PAS l'installation de votre public/privé des clés SSH.

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 commencer à suivre les instructions de la "Générer une clé" de la section et en bas.

Après l'exécution de ces instructions, mon "git push origin master" commande a fonctionné.

4voto

ken Points 489
<p>J’ai le même problème et je pense que le pare-feu ne bloque pas le protocole git. Donc en fin de compte je dois recourir à l’aide de https:// pour récupérer et pousser. Toutefois, cela va toujours amener l’utilisateur à entrer le mot de passe...<p>Voici l’exemple de ce que travailler pour moi (juste pour partager avec ceux qui ne peuvent pas utiliser git : / / protocole  :)</p><pre><code></code></pre><p>Si les œuvres ci-dessus, vous pouvez supprimer l’origine et la remplacer par</p><pre><code></code></pre></p>

1voto

Aaron Points 574
<p>Je pense que c’est un autre cas de messages d’erreur git être trompeuse. Habituellement quand j’ai vu que l’erreur c’est dû à ssh problèmes. Avez-vous ajouté votre public ssh clés à votre compte github ?</p> <p>Edit : Aussi, le post sur le forum xinet.d se réfère à l’exécution de la git-daemon en tant que service afin que les gens pouvaient tirer de votre système. Il n’est pas nécessaire d’exécuter git-daemon pour pousser à github.</p>

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: