2014-11-04 13 views
7

In git, ho un ramo A. Creo un altro ramo B dove creo pochi commit. Quindi voglio inoltrare rapidamente il ramo A al ramo B.È possibile inoltrare rapidamente un altro ramo senza verificarlo?

So che posso effettuare il checkout A e fare l'inoltro veloce all'ultima commit di B. Questa operazione richiede due modifiche della copia di lavoro: la prima per tornare a A e quindi ripristinare la copia di lavoro a B. Se il nuovo commit su B contiene molte modifiche, l'operazione potrebbe essere piuttosto lenta.

È possibile fare avanzare rapidamente un altro ramo senza modificare la copia di lavoro? (In altre parole, per spostare solo il puntatore di A)

+1

'git update-ref'. Usare con cautela. –

+0

@AndrewC aggiungilo come risposta. –

risposta

3

Git fornisce il comando update-ref per questo scopo

git update-ref A B 

Nota: Questo comando è uno dei comandi Git di livello inferiore e non fornisce alcuna garanzie per te di evitare di rovinarti. Se B non è un avanzamento rapido di A, continuerà ad aggiornare A, rendendo potenzialmente commettibili irraggiungibili e soggetti a garbage collection.

+0

@Zeeker dice che non perde più commit: http://stackoverflow.com/questions/26752567/is-it-better-to-use-git-branch-f-or-git-update-ref-to-fast -forware-reggiseno esistente # comment42096589_26752567 –

+2

Non spariranno magicamente nel momento in cui eseguirai l'aggiornamento ref o qualcosa del genere. Ma possono diventare irraggiungibili e una volta che ciò accade sono soggetti alle normali politiche di garbage collection. –

+0

Hmm .. Voglio farlo, ma non abbastanza per usare un aggiornamento-ref nudo. :-( – Thilo

Problemi correlati