Tengo un problema con git y mi terminal.
Aquí hay una galería para mostrarle mi problema: http://imgur.com/a/6RrEY
Cuando presiono las confirmaciones desde mi terminal, git dice que las presiono con otro nombre de usuario, es un usuario de mi organización (mi empresa) sin ningún compromiso y parece que no pertenece a nadie: (ver la primera foto de la galería)
Pero esto no sucede cuando uso Github para mac, en el feed veo las confirmaciones empujadas por mí mismo.
El problema también afecta a mis repositorios personales, mi terminal dice que no tengo el permiso para enviar confirmaciones en esos repositorios (lo cual es obviamente incorrecto) ya que intenta enviarlo con este usuario: (ver la segunda foto de la galería)
Adivina qué ? Esto tampoco sucede con Github para mac.
Cambié mi computadora a una nueva hace unos días, así que restablecí toda mi clave ssh de github y dejé solo una nueva generada por Github para Mac, así que no creo que haya algún usuario fantasma / clave ssh oculta en algún lugar, este disco duro es nuevo: (ver la tercera foto de la galería)
Mi archivo .gitconfig está todo claro, solo están mis credenciales: (ver la cuarta imagen de la galería)
Realmente no lo entiendo, ayuda, StackOverflow, eres mi única esperanza.
(Mis disculpas por mis pobres habilidades con Gimp y la referencia de Star Wars)
EDITAR: ssh-add -l
solo muestra la buena clave ssh creada por github para mac y solo tengo una cuenta de github
EDIT2: ssh -T [email protected]
reconoceme como el buen usuario.
EDIT3: Después de algunas pruebas, parece que mi terminal hace los commits con mi nombre de usuario, pero los empuja con el otro, Github para mac confirma y empuja con el buen nombre de usuario. Esta situación sucede con cada repositorio que tengo / hago (incluso nuevo unos).
EDIT4: En un repositorio personal git log --pretty="%h %an %ae"
muestra mi buen nombre de usuario
EDIT5: No hay señales de variables de entorno que anulen mis credenciales en my env
. Incluso si trato de establecer esas variables con buenas credenciales, el problema persiste.
EDIT6: Las cosas funcionan normalmente si fuerzo al usuario en la ruta /.git/config
de un repositorio, pero no creo que esa sea la buena opción:http://[email protected]/USER/REPO.git
EDIT7: Eliminamos el usuario de git que me envió las confirmaciones y esto trae otro error:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
EDICIÓN FINAL: instalé git con homebrew, escribí git config --global push.default simple
y ahora toma mis credenciales incluso sin forzar al usuario. Eso es extraño. Gracias a todos por su ayuda, ¡son buenos chicos!
~/.gitconfig
y$project_root/.git/config
archivos. Uno de esos dos seguramente está mal configurado para el nombre de usuario.~/.gitconfig
es claro y también lo es$project_root/.git/config
. De hecho, tengo este problema con cada proyecto personal, los proyectos de trabajo se pueden impulsar ya que este otro usuario pertenece a mi organización que posee esos repositorios.Respuestas:
Acabo de tener este problema en el trabajo. El git incorporado que se envía con mac o viene cuando instalas xcode almacena en caché las credenciales de git en el llavero. La solución para mí fue:
iniciar el acceso al llavero (iniciar el foco mediante cmd + espacio, escribir llavero, presionar enter)
Debajo de los llaveros en la parte superior izquierda, seleccione "iniciar sesión". En la categoría de la izquierda, seleccione "contraseñas"
busque el nombre "github" y elimínelo.
fuente
seahorse
en Ubuntu.github te identifica por la clave ssh que ve, no por ninguna configuración de git.
Por lo tanto, debe asegurarse de que la clave ssh de su cuenta de trabajo no esté en su llavero cuando intente presionar desde su cuenta personal y viceversa.
Úselo
ssh-add -l
para determinar qué claves están en su llavero yssh-add -d <keyfile>
para quitar una clave de su llavero, si no funciona, quite la clave ssh 'no deseada' de~/.ssh/config
.fuente
NB: Github seguirá identificando su confirmación basándose únicamente en el correo electrónico.
fuente
user.email
estaba configurada correctamente. Ojalá pudiera votar a favor cinco veces.ssh-add -D
ssh-add -l
, obtengo una respuesta que no ayuda. Escribe4096 SHA256:lotsOfGibberish,about40chars (RSA)
No sé cómo enviarnos esta información.A pesar de todas las excelentes opciones ofrecidas por otros usuarios, la única forma de solucionar esto era reinstalar git por completo y escribir
git config --global push.default simple
para reescribir buenas credenciales.fuente
git config --system --unset credential.helper
funcionó para mí, ahora me piden mis credenciales de GitHub en push nuevamente y puedo proporcionar el ID de usuario y la contraseña correctos.git config --system --unset credential.helper
no funciona en Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Estoy usando Windows 10 y hoy me enfrenté al mismo problema. En mi caso, el administrador de credenciales de Windows guardó mis credenciales para diferentes usuarios. Por lo tanto, eliminando / desarmando las credenciales de git con el siguiente comando,
git config --global --unset credential.helper
no ayudó. Tuve que eliminar manualmente la entrada en Windows siguiendo la siguiente manera,
Inicio -> Panel de control ---> Cuentas de usuario ---> Administre sus credenciales ---> Credenciales de Windows
Luego busque una entrada como, git: https://github.com y elimínela. Funciona bien después de eso.
fuente
El nombre y el correo electrónico del autor y del autor (que son importantes para GitHub) se derivan de:
Sin embargo, como se menciona en
git config
ygit commit-tree
, esos valores pueden ser anulados por variables de entorno:Así que revisa esas variables.
Pero debería ser una buena solución.
Cuando utilizo una URL https, siempre especifico el usuario en ella para asegurarme de que la autenticación se realiza con el usuario correcto.
fuente
git config
credenciales son correctas y no hay variables de/username/.bashrc
env
salida ' '.http://[email protected]/USER/REPO.git
Primero se ejecuta una solución temporal y
killall ssh-agent
luego se agregan las claves ssh generadas para la cuenta que necesita usarssh-add ~/.ssh/id_4shameer
Nos ayudará a trabajar en varias cuentas de github cuando obtengamos el error de tipo
ERROR: Permission to user/repo-git.git denied to username.
fuente
killall
, el ssh-agent debe reiniciarse coneval "$(ssh-agent -s)"
, y elssh-add
comando debe ejecutarse consudo
.Si está utilizando MAC, vaya a Acceso a Llaveros y elimine la entrada del usuario para el que no desea acceder a git.
fuente
La solución para mí fue agregar una entrada en mi archivo ~ / .ssh / config para github. Tuve que hacer esto porque:
La entrada que agregué es:
Había creado una nueva clave, única para mi cuenta, como id_rsa_waterproofpatch. Esta entrada en mi configuración de ssh especifica que para las conexiones a github.com, deseo presentar esta clave.
Otra solución probablemente hubiera sido iniciar sesión en la otra cuenta, eliminar la clave ssh duplicada.
fuente
Tuve un problema similar y resultó que el problema era el hecho de que el archivo de clave pública contenía mi dirección de correo electrónico en la última línea. Eso pareció anular la configuración de Usuario en mi configuración. Tan pronto como eliminé mi correo electrónico del archivo .pub (y lo volví a cargar en mi repositorio), Git se conectó con el usuario correcto.
fuente
Lo que funcionó para mí fue usar la URL https del repositorio de Github en lugar de la URL ssh . Fui a la página del proyecto Github y copié la URL https en mi portapapeles, y luego la pegué en el segundo comando a continuación:
fuente
¡Qué dolor en el trasero!
problema:
gira por una razón desconocida, git push estaba usando el usuario incorrecto. Tengo un par de ID de usuario de git hub diferentes. Trabajo para 2 empresas diferentes y también tengo una identificación de estudiante
Estoy trabajando en una mac. esto es lo que finalmente hice
1) eliminar credential.helper
a. necesita averiguar dónde está configurado credential.helper
si. una vez que encuentre el archivo fig correcto, retírelo de la siguiente manera
Ahora, en mi repositorio local, pirateé el archivo .git / config
Cambié
a
fuente
En mi caso particular, el problema fue que estaba usando un
.netrc
accesogithub.com
y estaba configurado con un token de un usuario diferente:fuente
limpiar el llavero no ayudó ... tuve que
ssh-add -D
volver a agregar la clave conssh-add <keyfile>
fuente
Resolví este problema eliminando (o cambiando el nombre a * .bak) el archivo id_rsa e id_rsa.pub en MacOS High Sierra. Idea de aqui .
Tengo redireccionamientos de host personalizados en ~ / .ssh / config que deberían aplicarse pero usé un usuario incorrecto antes de cambiar el nombre de los dos archivos ...
fuente
Eso es lo que funcionó para mí:
fuente
Lo que funcionó para mí al eliminar el repositorio y agregarlo nuevamente:
fuente
Tengo el mismo problema en Windows10 incluso después de desinstalar mi git, como @ user542833 dice que se debe a que Windows cache y usted debe eliminar las credenciales de Github en sus ventanas
Credential Manager
y cuando intenta presionar nuevamente, Windows le pide su credencial y la configura nuevamente.fuente
Acabo de pasar 6 horas averiguando esto cuando intentaba pasar a un nuevo repositorio de páginas de GitHub en una nueva cuenta.
Incluso después de configurar la configuración user.name y user.email, se establecería de forma predeterminada en mi cuenta principal.
Esto se debe a que la clave ssh será por defecto id_rsa (mi cuenta principal).
Para usar la nueva cuenta tuve que ejecutar:
ssh-add ~/.ssh/my_new_key
que luego hará que git use la nueva clave al presionar.
fuente