/ / git pull ramo remoto V / S git merge remote / branch V / S git rebase remote / branch - git, repository, git-merge, git-rebase, git-pull

git pull ramo remoto V / S git merge remote / branch V / S git rebase remote / branch - git, repository, git-merge, git-rebase, git-pull

Considera che il mio repo fork è mappato con il telecomando origin e il repository padre mappato a upstream.

Sembra che tutti i 3 comandi seguenti possano essere usati per mantenere il master ramo di origin, aggiornato con master ramo di upstream.

git pull upstream master

git merge upstream/master

git rebase upstream/master

Per favore aiutami a capire se ci sono delle differenze tra questi tre comandi.

risposte:

1 per risposta № 1

L'output di unione e pull è lo stesso nel senso che le modifiche dal ramo unito vengono applicate ai commit correnti nel ramo corrente.

Prima di tirare / unire

  A---B---C master on origin
/
D---E---F---G master

Dopo

  A---B---C origin/master
/         
D---E---F---G---H master

L'output di rebase è inverso di pull. Tutti i nuovi commit dal punto in cui è stato creato il ramo attuale sono accantonati. Vengono applicati i commit dal ramo remoto e quindi vengono applicati i commit locali. Quindi rispetto a tirare i commit locali sono alla fine dei commit di remote.

     A---B---C topic
/
D---E---F---G master

Dopo il comando rebase

              A"--B"--C" topic
/
D---E---F---G master

Fonte - https://git-scm.com/docs/git-rebase