Un amigo y yo estamos compartiendo mi computadora. He hecho cambios a GitHub usando el shell git bash en Windows 7. Ahora estamos en un proyecto diferente en esa computadora y necesito que ingrese a su cuenta. Pero sigue intentando usar mi nombre de usuario y dice que no tengo acceso a su repositorio:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) antes de presionar?git config --local credential.helper ""
puede hacer el truco.Respuestas:
Si utiliza un usuario de Windows diferente, su clave SSH y la configuración de git serán independientes.
Si esta no es una opción para usted, entonces su amiga debe agregar su clave SSH a su cuenta de Github.
Aunque, la solución anterior te mantendrá presionando como a ti mismo, pero te permitirá presionar en su repositorio. Si no desea esto y trabaja en una carpeta diferente en la misma PC, puede configurar el nombre de usuario y el correo electrónico localmente dentro de una carpeta con git eliminando la
-g
bandera del comando config:Alternativamente, si presiona el
https
protocolo, Github le solicitará un nombre de usuario / contraseña cada vez (a menos que use un administrador de contraseñas).fuente
git config --global user.name "Mona Lisa"
Esto funcionó para mí, solicitará nombre de usuario y contraseña
fuente
helper = cache --timeout=999999
puesto en mi.gitignore
y esto funcionó. ¿Pero alguna forma de restablecer eso sin cambiar una configuración local me pregunto?credential.helper
, por ejemplo, el almacén de credenciales de Windows. Esto también significa que solicita un nombre de usuario / contraseña cada vez que lo necesita, ya que no hay nada configurado, por lo que tal vez también pueda configurar elcredential.helper
caché (consulte la respuesta de @Ciro Santilli) o use una respuesta diferente aquí.Puede presionar con el uso de una cuenta diferente. Por ejemplo, si su cuenta es A, que está almacenada en .gitconfig y desea usar la cuenta B, que es el propietario del repositorio que desea enviar.
Cuenta B : B_user_name, B_password
Ejemplo de enlace SSH: https://github.com/B_user_name/project.git
El impulso con la cuenta B es:
Para ver la cuenta en .gitconfig
$git config --global --list
$git config --global -e
(para cambiar la cuenta también)fuente
user.name
,user.email
en la configuración local, he clonado con el nombre de usuario, y no funciona; ahora la última respuesta funciona sin tocar el llavero / lo que sea ... enGit 2.9.0 in Windows
. "por fin pero no menos importante" ... así se llama. Gracias. Esta respuesta merece más votos positivos.https://'B_user_name'@github.com/B_user_name/project.git
. Esto debería solicitar la contraseña deB_user_name
.Configuré un alias ssh usando un personalizado
IdentityFile
y reescribí el origen para usar mime-github
nombre de host personalizado .fuente
git remote set-url origin git@user1-github:user1/my-repo.git
😊Si usa una URL SSH (
[email protected]:username/projectname.git
) en lugar de una URL HTTPS, puede especificar temporalmente una clave SSH diferente utilizando la$GIT_SSH_COMMAND
variable de entorno:Hasta donde puedo decir, con las URL SSH, a GitHub no le importan los nombres de usuario, solo las claves: si una cuenta de usuario tiene acceso a un repositorio y esa cuenta tiene una clave SSH (consulte la página de claves SSH en la cuenta configuración), luego, si usa esa clave SSH para enviar a ese repositorio, la inserción se tratará como si viniera de ese usuario.
fuente
user.name
yuser.email
engit config
cambiará la cuenta de que una confirmación se relaciona conSi después de ejecutar
git push
Git solicita una contraseña deuser
, pero desea presionar comonew_user
, puede usargit config remote.origin.url
:En este punto, use
^C
para salirgit push
y use el siguiente para presionar comonew_user
.fuente
git config remote.origin.url https://[email protected]/different_user/repo.git
Es simple durante la clonación, tome la URL de git con su nombre de usuario. Mientras se compromete le pedirá su nueva contraseña de usuario.
P.ej:
git clone https: //[email protected]/username/reponame.git
git clone https: //[email protected]/username/reponame.git
fuente
fatal: repo not found
.si este es tu problema
Además de cambiar el nombre de usuario y el correo electrónico desde la terminal usando git config:
deberás eliminar la información de autorización de Keychain. Esta solución me tomó varias horas para darme cuenta. Descubrí que también tenía un certificado en mi Llavero.
Abra el acceso a Llavero, haga clic en Todos los artículos y busque git. Eliminar todo el llavero
fuente
He estado usando una máquina para insertar código en dos cuentas de GitHub diferentes con un nombre de usuario diferente. Suponiendo que ya configuró una cuenta y desea agregar una nueva:
ssh-keygen -t rsa -C "[email protected]"
id_rsa
. Dale un nombre diferente, por ejemploid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
y edítelo proporcionando configuraciones a sus cuentas:Ahora debería poder enviar desde diferentes cuentas dependiendo de la clave que agregue al agente ssh, es decir, para usar su primera cuenta
ssh-add ~/.ssh/id_rsa
.También es posible que desee cambiar su correo electrónico de usuario:
git config --global user.email "[email protected]"
o limpie las claves ssh en caso de error de permiso al poner el código en una de las cuentas:
ssh-add -D
fuente
git push
funciona Debería poder presionar después de agregar su claveVaya al Administrador de credenciales Vaya a Credenciales de Windows Elimine las entradas en Credenciales genéricas Intente conectarse nuevamente.
fuente
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Como se mencionó anteriormente, puede usar
para configurar manualmente el nombre de usuario y el correo electrónico para un repositorio único, pero debe agregar este comando:
si ya ha intentado presionar antes del cambio. De lo contrario, los cambios no aparecen en el archivo de configuración.
fuente
--reset-author
(con--
...) colocará el último nombre / correo electrónico configurado en la última confirmación, y también la última marca de tiempo. No afecta los cambios en el archivo de configuración.Puede agregar una nueva URL remota para el otro nombre de usuario usando
git remote add origin-username https://[email protected]/repository_name.git
Después de esto, si presionas el uso
git push -u origin-username master
, te pedirá la contraseña.fuente
git config user.name solo cambia el nombre que confirmo. Todavía no puedo empujar. Así es como lo resolví, y creo que es una manera fácil para mí.
Genere una clave SSH con el nombre de usuario que desea insertar en la computadora que usará https://help.github.com/articles/connecting-to-github-with-ssh/
Agregue esta clave a la cuenta de usuario de github que desea enviar a https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Elija clonar con SSH
Puede ingresar como este usuario a ese repositorio ahora.
fuente
Si en Windows y el usuario Git para Windows y
manager
para administrar las credenciales (también conocido comoGit-Credential-Manager-for-Windows
Enlace ), el problema es que no hay una manera fácil de cambiar entre los usuarios al presionar a GitHub sobre elhttps
uso deOAuth
tokens.La razón es que el token se almacena como:
git:https://github.com
Personal Access Token
OAuth_Token
Las variaciones de la URL
Internet Address
no funcionan, por ejemplo:git:https://[email protected]
git:https://github.com/username
La solución: espacios de nombres . Esto se encuentra en los detalles para la configuración de
Git-Credential-Manager-for-Windows
:Citando de ello:
Ahora, guarde su credencial en el Administrador de credenciales de Windows como:
git.username:https://github.com
Personal Access Token
OAuth_Token
Tenga en cuenta que hemos cambiado:
git
->git.username
(donde cambiausername
a su nombre de usuario real o por el bien, a lo que desee como identificador único)Ahora, dentro del repositorio donde desea usar la entrada específica, ejecute:
(De nuevo ... reemplace
username
con el valor deseado)Tu
.git/config
contendrá ahora:Et voilá! La credencial correcta se extraerá del Almacén de credenciales de Windows.
Esto, por supuesto, no cambia qué usuario / correo electrónico está presionando. Para eso tienes que configurar lo habitual
user.name
yuser.email
fuente
git config credential.namespace git.username
como se menciona (reemplazando el nombre de usuario). Si presiona la próxima vez, git le pedirá las nuevas credenciales para el nombre de usuario.No pude descubrir cómo tener una segunda identidad de github en una sola máquina (ninguna de estas respuestas me funcionó para eso), pero sí descubrí cómo poder empujar a varias cuentas de github diferentes como yo.
Presione como el mismo nombre de usuario, pero a diferentes cuentas de github
Configure una segunda clave SSH ( así ) para su segunda cuenta de github
Cambiar entre cuentas así:
Empuje con mi nueva segunda cuenta de github
Empujar con mi cuenta principal
fuente
Si tiene https://desktop.github.com/
, puede ir a Preferencias (u Opciones) -> Cuentas
y luego cerrar sesión e iniciar sesión.
fuente
Siga los siguientes pasos:
fuente
El ID de usuario donde ocurre la confirmación se almacena en el archivo de configuración.
ir a la parte superior del repositorio vi .git / config
cambie la línea de URL que aparece después de "[origen" remoto "] para tener el ID de usuario apropiado
fuente
Si usas ssh y obtienes
Si bien no desea presionar como Alice_username, asegúrese de que Alice_username no tenga la clave ssh de su computadora agregada a su cuenta de github.
Eliminé mi clave ssh de la cuenta github de alice y el empuje funcionó.
fuente