Pasar al contenido principal
Penyaskito Blog

Main navigation

  • Home
  • Contacto
Language switcher
  • English
  • Español
User account menu
  • Iniciar sesión

Sobrescribir enlaces de ayuda a la navegación

  1. Inicio
  2. Archivo mensual

Enero 2022

Por penyaskito, 6 Enero, 2022

Reescribiendo el historial de commits de git para editar el autor y el email de commits pasados

Hoy necesité editar los commits de un repositorio creado recientemente donde sólo había commiteado yo, pero desde distintos entornos: mi setup habitual con la configuración correcta, otro equipo donde no había configurado la propiedad user.email global, y donde también había añadido el archivo de licencia directamente desde gitlab.  Básicamente, tres direcciones de email distintas y dos nombres distintos asociados a diferentes commits que quería unificar, ya que es bastante desorganizado para un repositorio tan reciente.

Como encontré en esta pregunta en StackOverflow sobre reescribiendo el autor de los commits, se puede arreglar con la herramienta git-filter-repo:

Para instalarla, usé brew (aunque está disponible en la mayoría de gestores de paquetes) con sólo: 

brew install git-filter-repo

Y después la puedes usar con:

git-filter-repo --name-callback 'return name.replace(b"oldName", bytes("newNameWithUtf8Chars", "utf-8"))' --email-callback 'return email.replace(b"oldmail@example.com", b"newmail@example.com")' --force

Después de esto tuve que reañadir el repositorio remote y hacer git push --force. Ten en cuenta que se reescribe el historial, así que puede que necesites (y tus compañeros) reclonar el repo. Recuerda planificarlo acordemente.

Ten también en cuenta que si la rama está protegida, puede que necesites editar permisos para poder hacer el push. Yo lo permití temporalmente siguiendo los pasos de Allow force push on a protected branch on Gitlab docs.

 

Tags

  • git

Archivo mensual

  • Enero 2022 (1)
  • Mayo 2021 (1)
  • Abril 2021 (1)
  • Noviembre 2012 (1)
  • Septiembre 2012 (3)
  • Agosto 2012 (3)
  • Junio 2012 (6)

Contenido reciente

Reescribiendo el historial de commits de git para editar el autor y el email de commits pasados
1 año ago
Drupal JavaScript behavior para destacar líneas de pedido editadas en el carrito de Drupal Commerce
1 año 8 meses ago
Actualización sencilla de un blog personal de Drupal 7 a 9: algunos consejos para migrar
1 año 9 meses ago
Drupalcamp Spain 2012
10 años 2 meses ago
Cumplimiento de la LOPD con el módulo LOPD de Drupal
10 años 4 meses ago
Pruebas de carga e informes desatendidos con JMeter
10 años 4 meses ago
Flujo de trabajo con Git y submodules para despliegues de Drupal
10 años 4 meses ago
Participando en Drupalcon Munich D8MI Sprint (en remoto)
10 años 5 meses ago
Charla en Drupal Sevilla: Contribuyendo a Drupal
10 años 5 meses ago
OOP & PSR-0-ify gettext .po file parsing and generation
10 años 5 meses ago

Comentarios recientes

Thanks for the comment
1 año 8 meses ago
Thanks for sharing this…
1 año 8 meses ago
Looking good!
1 año 9 meses ago
lopd
8 años 9 meses ago
LOPD
8 años 10 meses ago
Gridinit
10 años 3 meses ago
Ya la tiene
10 años 4 meses ago
Debería :-P
10 años 4 meses ago
Ei! tiene buena pinta...
10 años 4 meses ago
Buenas Fco Antonio,
10 años 4 meses ago

Blogs que sigo

Mateu Aguiló "e0ipso"
Gábor Hojtsy
Pedro Cambra
The Russian Lullaby, davidjguru
Can It Be All So Simple
Maria Arias de Reyna "Délawen"
Matt Glaman
Josef Ottosson (dotnet)
Daniel Wehner
Jacob Rockowitz
Syndicate

Footer

  • Contacto
  • Drupal.org
  • LinkedIn
  • GitHub
  • Twitter
Funciona con Drupal