Tengo este extraño problema al clonar un repositorio con mis credenciales ( [email protected]
). Pero no puedo impulsar los cambios porque siempre recibo este mensaje:
GitLab: You cannot push commits for '[email protected]' . You can only push commits that were committed with one of your own verified emails.
El problema es que cuando reviso los usuarios globales y del repositorio encuentro que es [email protected]
:
Global (a continuación confirma mi dirección correcta):
git config --global user.email
git config --global user.name
Repositorio (a continuación confirma mi dirección correcta):
git config user.email
git config user.name
¿Qué debo hacer y cuál es la razón detrás de este misterioso misterio?
Respuesta1
Pude solucionar el mismo problema usando este comando git:
git commit --amend --reset-author --no-edit
Inicialmente intenté confirmar con el correo electrónico incorrecto, pero incluso después de configurar user.name y user.email en git config --global
el correcto, seguí recibiendo el mismo error "No puedes enviar confirmaciones para..." anterior.
La solución fue restablecer el autor en git; luego se aceptó el envío a Gitlab.
Para referencia:https://github.com/git-tips/tips#revert-undo-a-commit-by-creating-a-new-commit
Respuesta2
En mi caso hubo una restricción de confirmación en el proyecto en GitLab. "Los usuarios sólo pueden enviar a este repositorio confirmaciones que se hayan confirmado con uno de sus propios correos electrónicos verificados". Como configuré SSH también con mi máquina, el correo electrónico de mi usuario se actualizó en el archivo global git con la dirección de mi máquina, por lo que el control remoto no permitía PUSH.
Puede encontrar esto en- gitlab-> configuración -> Repositorio -> Reglas push; simplemente deshabilite esta restricción de confirmación y funcionará.
Respuesta3
git commit --amend --reset-author --no-edit
solo cambia el autor en la última confirmación; si tiene varias confirmaciones, aún no podrá enviar.
Compruébelo con git log
, restablezca cada confirmación con el autor incorrecto y vuelva a confirmar.