Video: Merge versus rebase: scegli con un grafico
Il video viene riprodotto nel player di YouTube, in modalità di privacy avanzata.
- 6 minuti di video
- Narrazione in inglese · English and Arabic didascalie
- Guarda su YouTube
Esegui l'unione e il rebase da due copie identiche della stessa divergenza, confronta i due grafici, i genitori e gli alberi dei file e impara l'unica regola che decide tra loro: chi altro ha già i tuoi commit.
Leggi la lezione completa
L'articolo contiene tutti i passaggi e i comandi del video, dell'esercizio pratico e delle domande.
Trascrizione video
La narrazione del video, spunto per spunto.
- Unire o riorganizzare? Lo stesso lavoro può andarsene due storie diverse.
- Correremo entrambi dallo stesso inizio puntare e confrontare.
- Il tuo ramo ha un commit. L'aggiornato il ramo ne ha un altro.
- Entrambi sono cresciuti dallo stesso impegno, quindi nessuno dei due contiene l'altro.
- Per prima cosa prepara la divergenza e creane due copie identiche.
- Un test corretto richiede gli stessi riferimenti e file in entrambe le copie.
- Ecco la prima copia. Ci uniremo questo.
- E questa è la seconda copia. Lo teniamo intatto per il rebase.
- Fare clic con il pulsante destro del mouse su aggiornato-principale e sceglierlo Unisci comando.
- In Registra come scegli Sempre un'unione impegnarsi.
- Scegli Unisci una volta e attendi il vero risultato.
- Il nuovo commit ha due genitori: your commit, quindi aggiornato-main.
- Ora la seconda copia. Ha ancora i due impegni originali.
- Fare di nuovo clic con il pulsante destro del mouse su aggiornato-principale e scegliere Ribase questa volta.
- La finestra di dialogo nomina il ramo e il file bersaglio. Lascia entrambe le opzioni disattivate.
- Ribasare una volta. Git riproduce il tuo commit top di aggiornato-main.
- Il commit riprodotto ha un nuovo genitore, quindi ottiene un nuovo ID.
- Il vecchio impegno non è andato perduto: il salvataggio il ramo lo indica ancora.
- Ora confronta i file. La pagina è la stesso in entrambe le copie.
- Così è la nota di integrazione. Stessi file, storia diversa.
- Guarda i due grafici: un diamante con a unisci commit e una linea retta.
- Quindi quale dovresti usare? Chiedi a chi altro ha i tuoi impegni.
- Se altri li hanno, uniscili. Un rebase lo farebbe riscrivere la loro storia.
- Se i commit sono privati, rebase lo è sicuro e dà una linea retta.
- Né migliora il tuo codice. La regola riguarda la proprietà.
- Ora dimostralo nel terminale. Innanzitutto, il genitori di ogni punta.
- Tre ID per la copia unificata: il commit, e i suoi due genitori.
- Due ID per la copia rebase: il commit, ed è un genitore.
- Poi gli alberi dei file: un ID, stampato due volte. Stessi file.
- Ma i due ID di commit differiscono. Uguale alberi, storie diverse.
- Cambia l'input: supponi che il tuo ramo avesse nessun impegno proprio.
- Un'unione predefinita avanzerebbe quindi rapidamente, senza commit di unione.
- Non riprogrammare mai un ramo di qualcun altro ha già.
- Se gli alberi differiscono, confronta l'inizio prima gli arbitri.
- Non eliminare un risultato per forzarne i due partita.
- Pratica: segnalare i genitori, i documenti d'identità e gli alberi dalle tue copie.
- Successivamente, riordina, schiaccia e riformula il tuo impegni locali.