git pull remote branch V / S git merge remote / ответвление V / S git rebase remote / ответвление - PullRequest
0 голосов
/ 08 мая 2018

Считайте, что мое разветвленное репо сопоставлено с удаленным origin, а родительское репо сопоставлено с upstream.

Похоже, все 3 приведенные ниже команды могут быть использованы для поддержания ветки master в origin, в соответствии с веткой master upstream.

git pull upstream master

git merge upstream/master

git rebase upstream/master

Пожалуйста, помогите мне понять, есть ли различия между этими тремя командами.

1 Ответ

0 голосов
/ 08 мая 2018

Вывод слияния и извлечения одинаков в том смысле, что изменения от объединенной ветви применяются поверх текущих фиксаций в вашей текущей ветке.

Перед извлечением / слиянием

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

После

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

Выход ребаз равен обратному натяжению.Все новые коммиты с того момента, как создается текущая ветка, находятся на полках.Применяется фиксация из удаленной ветви, а затем применяются локальные фиксации.Таким образом, по сравнению с вытягиванием локальные коммиты находятся в конце коммитов удаленных.

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

После команды rebase

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

Источник - https://git -scm.com / docs / git-rebase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...