Sono un noob in Git, e cercando di imparare la differenza tra git pullvs git rebase. Qualcuno può fornire un esempio di quando utilizzare quale opzione poiché ritengo che entrambe abbiano lo stesso scopo.
Sono un noob in Git, e cercando di imparare la differenza tra git pullvs git rebase. Qualcuno può fornire un esempio di quando utilizzare quale opzione poiché ritengo che entrambe abbiano lo stesso scopo.
Risposte:
git pulle git rebasenon sono intercambiabili, ma sono strettamente collegati.
git pullrecupera le ultime modifiche del ramo corrente da un telecomando e applica tali modifiche alla copia locale del ramo. Generalmente questo viene fatto mediante l'unione, ovvero le modifiche locali vengono unite nelle modifiche remote. Quindi git pullè simile a git fetch & git merge.
Il rebasing è un'alternativa alla fusione. Invece di creare un nuovo commit che combini i due rami, sposta i commit di uno dei rami uno sopra l'altro.
Puoi eseguire il pull usando rebase invece di merge ( git pull --rebase). Le modifiche locali apportate verranno riassegnate in cima alle modifiche remote, invece di essere unite alle modifiche remote.
Atlassian ha una documentazione eccellente sulla fusione e sul ribasamento .
git-pull - Recupera da e integra con un altro repository o un ramo locale GIT PULL
Fondamentalmente stai tirando il ramo remoto al tuo locale, esempio:
git pull origin master
Tirerà il ramo principale nel tuo repository locale
git-rebase - commit locali di Forward-port per la testa upstream aggiornata GIT REBASE
Questo sta mettendo le tue modifiche locali in cima alle modifiche eseguite in remoto da altri utenti. Per esempio:
SOME-FEATUREOra vuoi vedere le sue e le tue modifiche nella filiale locale. Quindi fai il checkout masterbranch:
git checkout master
quindi puoi tirare:
git pull origin master
e poi vai nella tua filiale:
git checkout SOME-FEATURE
e puoi fare rebase masterper ottenere le ultime modifiche da esso e mettere in cima i commit del tuo ramo:
git rebase master
Spero che ora sia un po 'più chiaro per te.
git fetchallora git rebase origin/master.
In poche parole:
-> Git Merge: Unirà semplicemente le tue modifiche e quelle remote e questo creerà un altro record della cronologia dei commit
-> Git Rebase: metterà le tue modifiche sopra tutte le nuove modifiche remote e riscriverà la cronologia dei commit, quindi la tua cronologia dei commit sarà molto più pulita di git merge. Il rebase è un'operazione distruttiva. Ciò significa che, se non lo applichi correttamente, potresti perdere il lavoro impegnato e / o interrompere la consistenza dei repository di altri sviluppatori.