Spesso i nostri progetti prendono vie inaspettate e tortuose. Cambiano i requisiti, o semplicemente le idee, o ancora più semplicemente i clienti hanno idee complicate.
Capita, quindi che a volte un ramo del nostro repository di progetto, assuma una forma tale da dover diventare un progetto a sé stante.
Vediamo quindi come creare un repository completamente nuovo a partire da un branch mantenendo però tutta la sua cronologia.
Creiamo il nuovo repo
Per prima cosa, creiamo un nuovo repository, in locale o sulla nostra piattaforma preferita, sia essa GitHub, BitBucket, GitLab, etc. Nel nostro esempio, lo creeremo su GitHub chiamandolo nuovo-repository. Avremo quindi un indirizzo del genere: https://github.com/accountname/nuovo-repository.git . Nel nostro esempio il ramo da “promuovere” dal repository di partenza si chiama feature/supermega.
Posizioniamoci nel ramo
A questo punto posizioniamoci in questo branch (facendo il git checkout) nella nostra copia locale del vecchio repository al quale appartiene appunto il ramo.
Pushiamo sul nuovo repository
Eseguiamo
1 | git push https://github.com/accountname/nuovo-repository.git +feature/supermega:master |
per creare il ramo master sul nuovo repository a partire dal ramo feature/supermega . Tutta la sua cronologia verrà conservata.
Questo metodo accetta parametri multipli, con il risultato che potremo mappare più di un ramo allo stesso tempo. Ecco un esempio:
1 | https://github.com/accountname/nuovo-repository.git +feature/supermega:master +ramolocale:ramonuovo |
Commenta per primo