Vai al contenuto
GitTree

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.

Vai alla lezione

Trascrizione video

La narrazione del video, spunto per spunto.

  1. Unire o riorganizzare? Lo stesso lavoro può andarsene due storie diverse.
  2. Correremo entrambi dallo stesso inizio puntare e confrontare.
  3. Il tuo ramo ha un commit. L'aggiornato il ramo ne ha un altro.
  4. Entrambi sono cresciuti dallo stesso impegno, quindi nessuno dei due contiene l'altro.
  5. Per prima cosa prepara la divergenza e creane due copie identiche.
  6. Un test corretto richiede gli stessi riferimenti e file in entrambe le copie.
  7. Ecco la prima copia. Ci uniremo questo.
  8. E questa è la seconda copia. Lo teniamo intatto per il rebase.
  9. Fare clic con il pulsante destro del mouse su aggiornato-principale e sceglierlo Unisci comando.
  10. In Registra come scegli Sempre un'unione impegnarsi.
  11. Scegli Unisci una volta e attendi il vero risultato.
  12. Il nuovo commit ha due genitori: your commit, quindi aggiornato-main.
  13. Ora la seconda copia. Ha ancora i due impegni originali.
  14. Fare di nuovo clic con il pulsante destro del mouse su aggiornato-principale e scegliere Ribase questa volta.
  15. La finestra di dialogo nomina il ramo e il file bersaglio. Lascia entrambe le opzioni disattivate.
  16. Ribasare una volta. Git riproduce il tuo commit top di aggiornato-main.
  17. Il commit riprodotto ha un nuovo genitore, quindi ottiene un nuovo ID.
  18. Il vecchio impegno non è andato perduto: il salvataggio il ramo lo indica ancora.
  19. Ora confronta i file. La pagina è la stesso in entrambe le copie.
  20. Così è la nota di integrazione. Stessi file, storia diversa.
  21. Guarda i due grafici: un diamante con a unisci commit e una linea retta.
  22. Quindi quale dovresti usare? Chiedi a chi altro ha i tuoi impegni.
  23. Se altri li hanno, uniscili. Un rebase lo farebbe riscrivere la loro storia.
  24. Se i commit sono privati, rebase lo è sicuro e dà una linea retta.
  25. Né migliora il tuo codice. La regola riguarda la proprietà.
  26. Ora dimostralo nel terminale. Innanzitutto, il genitori di ogni punta.
  27. Tre ID per la copia unificata: il commit, e i suoi due genitori.
  28. Due ID per la copia rebase: il commit, ed è un genitore.
  29. Poi gli alberi dei file: un ID, stampato due volte. Stessi file.
  30. Ma i due ID di commit differiscono. Uguale alberi, storie diverse.
  31. Cambia l'input: supponi che il tuo ramo avesse nessun impegno proprio.
  32. Un'unione predefinita avanzerebbe quindi rapidamente, senza commit di unione.
  33. Non riprogrammare mai un ramo di qualcun altro ha già.
  34. Se gli alberi differiscono, confronta l'inizio prima gli arbitri.
  35. Non eliminare un risultato per forzarne i due partita.
  36. Pratica: segnalare i genitori, i documenti d'identità e gli alberi dalle tue copie.
  37. Successivamente, riordina, schiaccia e riformula il tuo impegni locali.

Tutti i tutorial