83 votos

Incapaz de Git push maestro a Github

Esta pregunta está relacionada con mi problema en la comprensión de reajuste, de rama y de combinación, y el problema

¿Cómo se puede cometer a su cuenta de github como usted tiene un compañero de equipo en el control remoto de la lista?

Me enteré de que otras personas han tenido el mismo problema. El problema parece estar relacionado con /etc/xinet.d/.

Problema: no puede empujar mi sucursal local para mi, la rama principal en Github

Corro

git push origin master

Puedo obtener

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

El mensaje de error me sugiere que la rama de 'origen' no está en mi local del repositorio git. De esta manera, Git deja de conectarse a Github.

Esto es extraño, ya que no he quitado la rama de 'origen'.

Mi árbol git es

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

¿Cómo se puede empujar a su sucursal local para Github, mientras que usted tiene un compañero de equipo de la sucursal local de Git?


VonC la respuesta resuelve el principal problema. Puse un passphares para mi las claves ssh.

Corro

$git push github master     

Puedo obtener

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

Parece que tengo que dar la contraseña para Git de alguna manera.

¿Cómo se puede hacer Github para pedirle su frase de contraseña en lugar de depender de la clave ssh?

96voto

VonC Puntos 414372

¿Qué

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

devuelve (se ejecuta dentro de su repositorio git) ?

El origen es simplemente un defecto de convención de nomenclatura para referirse a un repositorio Git remoto.

Si no se refiere a GitHub (sino un camino a su compañero de equipo repositorio, camino que ya no sea válido o disponible), acaba de añadir otro origen, como en este Bloggitation entrada

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

(Yo en realidad iba a utilizar el nombre de 'github' en lugar de 'origen' o 'origin2')


Permiso denegado (clavepublica).
fatal: El extremo remoto se colgó de forma inesperada

Compruebe si su gitHub identidad está correctamente declarado en su local repositorio de Git, como se mencionó en el GitHub guía de Ayuda. (ambos usuario.nombre y github.nombre -- y github.token)

Entonces, stonean blog sugiere (como lo hace Marcio Garcia):

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan añade: crear un archivo de configuración

La solución fue crear un archivo de configuración en ~/.ssh/ como se indica en la parte inferior de la OS X de la sección de esta página.

Aquí está el archivo que he añadido, como por las instrucciones que aparecen en la página, y mi empuja comenzó a trabajar de nuevo:

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

Usted también puede publicar el resultado de

ssh -v git@github.com

para tener más información de por qué GitHub conexión ssh te rechaza.

Compruebe también que usted ha introducido correctamente su clave pública (que necesita para terminar con '==').
No pegue la clave privada, pero su público. Una clave pública sería algo como:

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

(Nota: ¿usted usa una frase de acceso para su llave ssh ? Sería más fácil sin una frase de contraseña)

Compruebe también el url que se utiliza cuando se empuja (git@github.com/..., no git://github.com/...)

Compruebe que usted no tiene un Agente SSH para uso y la caché de tu clave.

Intente esto:

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

Si funciona, entonces significa que su llave no es de ser enviado a GitHub por su cliente ssh.

28voto

Sarah Mei Puntos 10673

Este es un problema con el control remoto. Cuando usted haga git push origin master, origin es el mando a distancia y master es la rama en la que está empujando.

Al hacer esto:

git remote

Apuesto a que la lista no incluya origin. Para volver a agregar el origen remoto:

git remote add origin git@github.com:your_github_username/your_github_app.git

O, si existe, pero es un formato incorrecto:

git remote rm origin
git remote add origin git@github.com:your_github_username/your_github_app.git

10voto

johnnygoodman Puntos 343

VonC la respuesta es mejor, pero la parte que trabajó para mí fue super sencillo y es una especie de enterrado entre un montón de otras respuestas posibles. Si usted es como yo, que se metió en este problema, mientras que la ejecución de una "introducción a rails" tutorial y que NO había instalación de su público/privado claves SSH.

Si es así, pruebe esto:

  1. $>cd ~/.ssh

  2. $>ls

  3. Si la salida de ls se known_hosts y nada más, visite: http://help.github.com/mac-key-setup/ y empezar a seguir las instrucciones de la "Generación de una clave" de la sección y baje.

Después de ejecutar esas instrucciones, mi "git push origin master" comando trabajado.

4voto

ken Puntos 489

Yo tengo el mismo problema y creo que el firewall está bloqueando el protocolo git. Así que al final tengo que recurrir al uso de https:// para buscar y empuje. Sin embargo, esto siempre va a pedir al usuario que introduzca la contraseña...

aquí está el ejemplo de lo que es trabajar para mí (sólo para compartir con aquellos que no pueden utilizar git:// protocolo :)

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

si lo anterior funciona, usted puede eliminar el origen y reemplazar con

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

1voto

Aaron Puntos 574

Creo que es otro caso de git mensajes de error de ser engañosa. Por lo general, cuando he visto que el error es debido a ssh problemas. ¿Agregar a su público clave ssh a tu cuenta de github?

Edit: Además, el xinet.d post del foro se refiere a la ejecución de la git-daemon como un servicio para que la gente pudiera sacar de su sistema. No es necesario ejecutar git-daemon para empujar a github.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X