Supponendo che io sia il manutentore di un repository e che desideri estrarre le modifiche da un collaboratore, ci sono alcuni possibili flussi di lavoro:
- I
cherry-pick
ogni impegno dal telecomando (in ordine). In questo caso git registra il commit come non correlato al ramo remoto. - Io
merge
il ramo, inserendo tutte le modifiche e aggiungendo un nuovo commit "conflitto" (se necessario). - I
merge
ogni impegno dal ramo remoto singolarmente (sempre in ordine), permettendo conflitti da registrare per ogni commit, anziché raggruppati tutti insieme come uno. - Per completezza, potresti fare una
rebase
(stessacherry-pick
opzione?), Tuttavia la mia comprensione è che ciò può causare confusione per il contributore. Forse questo elimina l'opzione 1.
In entrambi i casi 2 e 3, git registra la cronologia delle ramificazioni dei commit, diversamente da 1.
Quali sono i pro e contro tra l'utilizzo di uno cherry-pick
o dei merge
metodi descritti? La mia comprensione è che il metodo 2 è la norma, ma ritengo che la risoluzione di un commit di grandi dimensioni con un'unica fusione "conflitto" non sia la soluzione più pulita.