git-edit-date frente a amend, rebase, filter-branch & filter-repo
Hay varias formas de cambiar las fechas de commit de git.
Aquí hay una comparación honesta para ayudarlo a elegir la herramienta adecuada:
de git commit --amend para una commit a ediciones masivas de CSV para una rama completa.
tabla comparativa
| git-edit-date | git confirma --amend | interactivo rebase | filter-branch | filter-repo | |
|---|---|---|---|---|---|
| Fechas de edición masiva | CSV en hoja de cálculo | Sólo el último compromiso | Un compromiso a la vez | Script de filtro ambiental de Shell | Script de devolución de llamada de Python |
| Editar correo electrónico del autor | Sí | Sólo el último compromiso | Manual por compromiso | filtro-env | mapa de correo / devolución de llamada |
| Revisión visual antes de apply | Hoja de cálculo | No | No | No | No |
| Curva de aprendizaje | Bajo | Bajo | Medio | Alto | Medio |
| Mantenido oficialmente | Activo | Integrado en git | Integrado en git | En desuso | Reemplazo recomendado |
| Lo mejor para | Correcciones masivas a nivel de rama a través de CSV | Arreglar solo el compromiso de propina | 1 a 3 commits recientes | Scripts heredados one-off | Migraciones complejas en todo el repositorio |
Cuándo utilizar git-edit-date
- Tienes muchas commits que arreglar en una sola rama.
- Quiere ordenar, filtrar y revisar fechas en Excel o LibreOffice
- Debe cambiar las fechas del autor y del autor con compensaciones de zona horaria
- Quiere un flujo de trabajo simple export → editar → apply sin escribir scripts de shell
Cuándo utilizar git commit --amend
- Solo la commit el último necesita una fecha o una corrección del autor.
- Aún no has presionado o estás bien reescribiendo solo la sugerencia.
- Una frase es suficiente, por ejemplo.
GIT_AUTHOR_DATE=… GIT_COMMITTER_DATE=… git commit --amend --no-edit
La modificación se detiene en una commit. Si necesita fijar fechas en una rama, utilice Tutorial CSV en lugar de repetir las paradas amend o rebase.
Cuándo utilizar el rebase interactivo
- Sólo las últimas commits (o muy pocas) necesitan un cambio de fecha
- Ya estás en un flujo rebase para aplastar o reordenar
- Se siente cómodo con los comandos
git rebase -iy amend
Cuándo utilizar filter-branch
Probablemente no deberías. Git oficialmente obsoleto filter-branch
a favor de filter-repo. Permanece en tutoriales antiguos y respuestas Stack Overflow,
pero la sintaxis env-filter es propensa a errores al reescribir fechas.
Cuándo utilizar filter-repo
- Todo el historial del repositorio necesita reestructuración
- Está eliminando secretos, dividiendo repositorios o realizando una reasignación de autores a gran escala.
- El rendimiento y la seguridad importan más que la comodidad de una hoja de cálculo
Para casos complejos, filter-repo es la herramienta moderna adecuada. git-edit-date gana cuando desea una hoja de cálculo y una solución rápida a nivel de rama.
Pruebe git-edit-date
curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
git-edit-date export -o commits.csv
Paso a paso: tutorial · Guías: blog · Preguntas comunes: Preguntas frecuentes · Comandos: documentos