Pasar al contenido principal
Penyaskito Blog

Main navigation

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

Sobrescribir enlaces de ayuda a la navegación

  1. Inicio

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

Por penyaskito, 6 Enero, 2022

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

Comments

Archivo mensual

  • Enero 2022 (1)
  • Mayo 2021 (2)
  • 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
3 years 4 months ago
Drupal JavaScript behavior para destacar líneas de pedido editadas en el carrito de Drupal Commerce
3 years 11 months ago
Analizando el rendimiento de Drupal, WordPress o cualquier aplicación php con DDEV, XHProf y XHGui
4 years ago

Comentarios recientes

I would recommend taking a…
1 year 8 months ago
This looks interesting
1 year 8 months ago
Thanks for the comment
3 years 11 months 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
  • Daniel Wehner
  • Jacob Rockowitz
  • Wim Leers
  • Dries Buytaert
Syndicate

Pie de página

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