es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Git: Reescribe todos los commits afectados: correo electrónico del usuario – no funciona para la actividad.

He realizado una serie de commits en muchos repositorios en Gitlab durante dos años. Sin embargo, me di cuenta de que no había configurado el correo electrónico correcto.

Utilicé el comando git filter-branch para filtrar el historial y cambiar el correo electrónico del usuario.


$ git filter-branch --env-filter '
OLD_EMAIL="old@example.com"
NEW_NAME="Nuevo Ejemplo"
NEW_EMAIL="new@example.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

luego forcé los cambios con el comando git push --force.
Esto actualiza el colaborador en la rama principal (master).

Después de ejecutar git push --force --tags origin 'refs/heads/master', también cambia el colaborador en las etiquetas.

Problema:
No se cambian los commits en la página de actividad. Ve a {Repositorio} > Información del proyecto > actividad (muestra el colaborador actualizado), pero al hacer clic en cualquier número de commit, carga un commit con el colaborador no actualizado.

Pregunta:
¿Cómo puedo reescribir el historial adecuado incluyendo los commits publicados en el registro de actividad?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, una vez que los commits se publican en el registro de actividad, no es posible reescribir el historial incluyendo esos commits. El registro de actividad es un registro público de todos los cambios realizados en el repositorio, y reescribir el historial crearía una discrepancia entre el registro y el historial real del repositorio.

    Sin embargo, de ahora en adelante, puedes asegurarte de que se utilice el correo electrónico correcto para todos los commits futuros configurando correctamente tu Git. Puedes utilizar los siguientes comandos para configurar tu nombre de usuario y correo electrónico global:

    $ git config --global user.name "Nuevo Ejemplo"
    $ git config --global user.email "nuevo@example.com"
    

    Esto asegurará que todos los commits futuros se atribuyan al usuario correcto con el correo electrónico correcto. También es una buena práctica verificar tu configuración de Git antes de realizar cualquier commit para evitar problemas como este en el futuro.

Comments are closed.