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
-gbandera del comando config:Alternativamente, si presiona el
httpsprotocolo, 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=999999puesto en mi.gitignorey 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.helpercaché (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.emailen 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
IdentityFiley reescribí el origen para usar mime-githubnombre 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_COMMANDvariable 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.nameyuser.emailengit configcambiará la cuenta de que una confirmación se relaciona conSi después de ejecutar
git pushGit solicita una contraseña deuser, pero desea presionar comonew_user, puede usargit config remote.origin.url:En este punto, use
^Cpara salirgit pushy use el siguiente para presionar comonew_user.fuente
git config remote.origin.url https://[email protected]/different_user/repo.gitEs 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_anotherssh-add ~/.ssh/id_rsa_anothertouch ~/.ssh/configy 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 -Dfuente
git pushfunciona 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.gitDespué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
managerpara administrar las credenciales (también conocido comoGit-Credential-Manager-for-WindowsEnlace ), el problema es que no hay una manera fácil de cambiar entre los usuarios al presionar a GitHub sobre elhttpsuso deOAuthtokens.La razón es que el token se almacena como:
git:https://github.comPersonal Access TokenOAuth_TokenLas variaciones de la URL
Internet Addressno funcionan, por ejemplo:git:https://[email protected]git:https://github.com/usernameLa 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.comPersonal Access TokenOAuth_TokenTenga en cuenta que hemos cambiado:
git->git.username(donde cambiausernamea 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
usernamecon el valor deseado)Tu
.git/configcontendrá 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.nameyuser.emailfuente
git config credential.namespace git.usernamecomo 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