Diciamo che ho un ramo di argomento di cui voglio riscrivere l'intera cronologia poiché è stato originariamente creato dal master per una richiesta pull. Per qualsiasi motivo, non è facile o ovvio usando git log
per determinare l'hash impegnarsi voglio passare perRebase interattivo di un ramo con il suo punto di divergenza dal master
git rebase -i <commit>
So che posso usare git merge-base <branch1> <branch2 || master>
per trovare il commit che le due riferimenti in grado di rintracciare i loro antenati da e posso usare quello per determinare il commit. Quello che vorrei sapere è se c'è un modo migliore per rebase interattivo tutto questo ramo (se maestro ha avanzato o meno) rispetto all'utilizzo
git rebase -i `git merge-base my_branch master`
EDIT: Io non voglio cambiare il genitore del primo commit fatto su questo ramo in modo che git rebase -i master
funzioni solo nel caso in cui entrambi i master non siano avanzati da quando il ramo è stato creato e il ramo è stato creato dal master di commit a cui punta attualmente.
Questa non è una risposta, ma un trucco interessante che mi è venuto in mente. Ho inserito quanto segue nel mio profilo. 'function gri() { git rebase -i \' git merge-base $ @ master \ ' }' – Aaron