git-edit-date vs modifica, ribasamento, filter-branch e filter-repo
Esistono diversi modi per modificare le date git commit.
Ecco un confronto onesto per aiutarti a scegliere lo strumento giusto:
da git commit --amend per una modifica collettiva da commit a CSV per un intero ramo.
Tabella comparativa
| git-edit-date | git commit --amend | rebase interattivo | filter-branch | filter-repo | |
|---|---|---|---|---|---|
| Modifica collettiva delle date | CSV nel foglio di calcolo | Solo l'ultimo commit | Uno commit alla volta | Script del filtro ambientale della shell | Script di richiamata Python |
| Modifica l'e-mail dell'autore | SÌ | Solo l'ultimo commit | Manuale secondo commit | filtro-env | mappa di posta/richiamata |
| Revisione visiva prima dell'applicazione | Foglio di calcolo | NO | NO | NO | NO |
| Curva di apprendimento | Basso | Basso | Medio | Alto | Medio |
| Officimantenuto in modo efficiente | Attivo | Integrato in git | Integrato in git | Deprecato | Sostituzione consigliata |
| Meglio per | Correzioni collettive a livello di filiale tramite CSV | Fissare solo la punta commit | 1–3 commit recenti | Script una tantum legacy | Migrazioni complesse a livello di repository |
Quando utilizzare git-edit-date
- Hai molti commit da sistemare su un singolo ramo
- Desideri ordinare, filtrare e rivedere le date in Excel o LibreOffice
- È necessario modificare sia la data dell'autore che quella committer con gli offset del fuso orario
- Desideri un semplice flusso di lavoro di esportazione → modifica → applica senza scrivere script di shell
Quando usarlo git commit --amend
- Solo il ultimo commit necessita di una correzione della data o dell'autore
- Non hai ancora spinto, oppure stai bene riscrivendo solo il suggerimento
- Basta una battuta, ad esempio
GIT_AUTHOR_DATE=… GIT_COMMITTER_DATE=… git commit --amend --no-edit
Modificare le fermate a uno commit. Se è necessario correggere le date in un ramo, utilizzare il Tutorial CSV invece di ripetere le interruzioni di modifica o rebase.
Quando utilizzare il rebase interattivo
- Solo l'ultimo commit (o pochissimi) necessita di un cambio di data
- Sei già in un flusso di rebase per lo schiacciamento o il riordino
- Ti trovi a tuo agio con
git rebase -ie modificare i comandi
Quando utilizzare filter-branch
Probabilmente non dovresti. Git officially deprecato filter-branch
a favore di filter-repo. Rimane nei vecchi tutorial e nelle risposte Stack Overflow,
ma la sintassi del filtro env è soggetta a errori per la riscrittura della data.
Quando utilizzare filter-repo
- L'intera cronologia del repository necessita di ristrutturazione
- Stai rimuovendo segreti, dividendo repository o rimappando gli autori su larga scala
- Le prestazioni e la sicurezza contano più della comodità del foglio di calcolo
Per i casi complessi, filter-repo è lo strumento moderno giusto. git-edit-date vince quando desideri un foglio di calcolo e una rapida soluzione a livello di ramo.
Prova 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
Passo dopo passo: tutorial · Guide: blog · Domande comuni: Domande frequenti · Comandi: documenti