Vorrei ribadire un ramo sul ramo principale ma in modo tale che tutti i commit vengano visualizzati in ordine cronologico nel log git. È possibile senza git rebase --interactive
e riorganizzando i commit manualmente?come rebase e mantenere i commit in ordine cronologico?
Sfondo: sto usando git per tenere traccia della configurazione fantoccio di una server farm. Il ramo principale è sempre in uno stato noto, in modo che tutti i server esistenti possano recuperare la loro configurazione dal server principale puppet.
Ogni nuovo server ha il proprio ramo, quindi ogni volta che lavoro sulla configurazione di un nuovo server, come cambiare un nome di dominio, configurare un certificato SSL, controllo il suo ramo e commetto tutte le configurazioni.
Dopo la nuova configurazione è completata, ho rebase i cambiamenti sulla diramazione maestro:
# git checkout new_config
Switched to branch 'new_config'
# git rebase master
First, rewinding head to replay your work on top of it...
Applying: fix routing rules
Applying: fix netmask
Applying: configure new ip address
# git checkout master
Switched to branch 'master'
# git merge new_config
Updating 21a3120..b0b79d7
Fast-forward
files/custom/xxxx | 45 +++++++++++++++++++++++++++++++++++++++++++++
files/custom/yyyy | 38 --------------------------------------
manifests/site.pp | 6 +++---
3 files changed, 48 insertions(+), 41 deletions(-)
#
I nuovi commit sono ora in cima al registro ma hanno i loro (passato) date originali. Ecco come si presenta:
commit b0b79d7924ec97e367664ccc26aaf0021916a30d
Author:
Date: Sun Jul 12 17:14:41 2015 +0200
configure new ip address
commit f60d00abd57d6b8582f49bf1322efb88d44ee86e
Author:
Date: Fri Jul 10 13:19:45 2015 +0200
fix netmask
commit 6eaae6c328faf55e5725f65a947bbb23ea29b166
Author:
Date: Fri Jun 12 14:05:25 2015 +0200
fix routing rules
commit 21a31200e6694c640b2cb526d773af11cd703ff1
Author:
Date: Wed Jul 15 15:08:41 2015 +0200
(most recent commit on master before rebase)
commit a7fa9cfa9c317fbbeb7dac8a89009c7d935fdd11
Author:
Date: Wed Jul 15 11:56:59 2015 +0200
(second most recent commit on master)
Si noti come i vecchi timestamp del ramo impegna mostrare nella parte superiore del tronco, invece di essere uniti, più in basso nel registro in base alle loro date di commettere. Devo eseguire un altro git rebase --interactive
per riorganizzare i commit in modo che il mio file di registro mostri tutti i commit in ordine cronologico.
Potresti spiegare perché è importante per te che si impegna a presentarsi in ordine cronologico? –
è il mio gusto personale. Trovo confuso se è ordinato in questo modo. – nn4l