Idiota

Come Git Rebase

Come Git Rebase
git rebase è un'utilità di unione proprio come git merge. Ma il modo in cui funzionano è diverso.

In questo articolo parlerò di come funziona Git rebase, le differenze tra Git rebase e Git merge e come lavorare con Git rebase. Quindi iniziamo.

Git Rebase:

Diciamo che hai un repository Git con i commit UN, B, C nel maestro ramo. Quindi, hai creato un nuovo ramo qualche ramo e aggiunto 2 nuovi commit D e E al qualche ramo ramo.

Fig 1: cronologia di commit iniziale.

Ora, diciamo, ti sei dimenticato di aggiungere qualcosa nel maestro ramo. Quindi, torni al maestro branch e aggiungi un nuovo commit G al maestro ramo. La tua cronologia git dovrebbe essere la seguente.

Fig 2: cronologia dei commit dopo aver aggiunto il commit G nel ramo principale.

Sembra tutto a posto. Ora, se volessi tutte le modifiche che hai apportato al qualche ramo ramo per essere nel maestro branch, puoi unire i qualche ramo ramo per il maestro ramo. Questo è quello che git unire fare.

E se vuoi il commit? G essere disponibile nel in qualche ramo ramo? Bene, puoi usare git rebase per questo.

Dalla cronologia dei commit in fig 2, puoi vedere che il ramo qualche ramo inizia dal commit C. Se fai un git rebase su qualche ramo, allora partirebbe dal commit G come mostrato nella figura 3 di seguito. Nota che, il contenuto del commit D e E cambierà anche dopo l'operazione di rebase. Gli impegni D e E includerà le modifiche in commit G. Per questo ho aggiunto * simbolo prima dei commit D e E.

Se vuoi sapere come sarebbe la cronologia dei commit se la unissi, dai un'occhiata alla fig 4. L'ho incluso solo così sarai in grado di confrontarlo con git rebase.

Fig 4: cronologia dei commit se è stato utilizzato git merge.

Ora che sai cos'è git rebase, la differenza tra git rebase e git merge e perché è stato usato git rebase, ti mostrerò come usarlo nella prossima sezione di questo articolo di seguito.

Flusso di lavoro di Git Rebase:

In questa sezione, creerò un nuovo repository git sul mio computer locale e ti mostrerò come funziona git rebase. Ti consiglio di avere una buona conoscenza di git rebase prima di applicarlo al tuo progetto.

Innanzitutto, crea un nuovo repository Git rebase-demo/ sul tuo computer come segue:

$ git init rebase-demo

Ora vai a rebase-demo/ directory come segue:

$ cd rebase-demo/

Ora crea un nuovo file test.TXT come segue:

$ echo "A" > test.TXT

Il test.txt contiene solo una riga UN. Diciamo che questo è il tuo codice progetto iniziale.

Ora, esegui il commit delle modifiche come segue:

$ git add .
$ git commit -m 'A'

Ora aggiungi un'altra riga B al test.TXT file come mostrato nello screenshot qui sotto.

Ora, esegui il commit delle modifiche come segue:

$ git add .
$ git commit -m 'B'

Ora aggiungiamo un'altra riga C al test.TXT file.

Inoltre, esegui il commit delle modifiche come segue:

$ git add .
$ git commit -m 'C'

Ora, la cronologia dei commit del ramo principale dovrebbe essere la seguente:

$ git log --oneline

Ora, diciamo, hai delle nuove idee che vuoi provare. Quindi, creiamo ed eseguiamo il checkout in un nuovo ramo nuova caratteristica come segue:

$ git checkout -b new-feature

Ora aggiungi la tua nuova idea (la linea D diciamo) al test.TXT file.

Ora, esegui il commit delle modifiche come segue:

$ git add .
$ git commit -m 'D'

Ora aggiungi la linea E al test.TXT file.

Conferma le modifiche come segue:

$ git add .
$ git commit -m 'E'

Ora, la cronologia dei commit del nuova caratteristica il ramo dovrebbe essere il seguente:

$ git log --oneline

Guarda come sono in ordine i commit A < B < C < D < E?

Ora, ti ricordi che hai dimenticato di aggiungere qualcosa al to maestro ramo in cui volevi essere anche tu nuova caratteristica ramo! Quindi, fai il check-out su maestro ramo.

Ho aggiunto una nuova riga alla fine del test.TXT file come puoi vedere.

Ora, esegui il commit delle modifiche come segue:

$ git add .
$ git commit -m 'G'

Ora, la cronologia dei commit del maestro il ramo dovrebbe assomigliare a questo.

UN < B < C < G

Ora, per rebase i commit dal from maestro ramo per il nuova caratteristica filiale, prima cassa al nuova caratteristica ramo.

$ git checkout nuova funzionalità

Ora, fai un rebase git di maestro ramo come segue:

$ git rebase master

Alcuni conflitti di fusione! Risolviamolo.

Bene, le modifiche che ho apportato al commit G e D sono in conflitto tra loro. Voglio tenerli entrambi.

Dopo aver risolto il conflitto di unione, il test.TXT il file dovrebbe avere il seguente aspetto:

Ora, aggiungi le modifiche all'area di staging come segue:

$ git add .

Ora, continua il rebase operando come segue:

$ git rebase --continua

Un altro conflitto di fusione! Bene, questo può succedere. Rebase cambia la cronologia di git commit. Quindi, cose come questa sono previste.

Sembra che il processo di unione non sia riuscito a causa di alcune righe vuote. Risolviamolo.

Dopo aver risolto il conflitto di unione, il test.TXT il file dovrebbe apparire come segue.

Ora, aggiungi le modifiche all'area di staging come segue:

$ git add .

Ora, continua l'operazione di rebase come segue:

$ git rebase --continua

Git rebase è completo.

Come puoi vedere, la cronologia dei commit del ramo new-feature è aggiornata. Ora, la cronologia dei commit è la seguente:

UN < B < C < G < D < E

Proprio come previsto.

Il finale test.TXT il file dovrebbe apparire come segue.

Git rebase è uno strumento potente. Ma non dovresti mai usarlo su repository Git condivisi. Usalo solo sui repository Git che lavori solo. Altrimenti, dovrai affrontare molti problemi lungo la strada.

Quindi, è così che usi git rebase. Grazie per aver letto questo articolo.

Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...
Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...