Что вывод мерзавца вытягивает на самом деле средний?

Я пытаюсь получить более полное понимание мерзавца.

Может кто-то давать мне простое линию за линией объяснение какой основной мерзавец pull выходные средства? Пример:

remote: Counting objects: 11, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From ssh://my.remote.host.com/~/git/myproject
 * branch            master     -> FETCH_HEAD
Updating 9d447d2..f74fb21
Fast forward
 app/controllers/myproject_controller.rb |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
36
задан slabserif23 27 July 2010 в 00:59
поделиться

1 ответ

Под капотом git pull есть git fetch , за которым следует git merge . Вот часть выборки:

remote: Counting objects: 11, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 2), reused 0 (delta 0)

На этом этапе вы сказали пульту дистанционного управления, что хотите. Он находит все объекты, которые ему нужно предоставить (я полагаю, считая их в процессе), сжимает их для более быстрой передачи по сети, а затем сообщает, что он вам отправляет. Объектами могут быть капли, деревья, коммиты или теги - см., Например, git book для получения дополнительной информации.

Unpacking objects: 100% (7/7), done.

Вы получаете пачку (набор сжатых предметов) и распаковываете ее.

From ssh://my.remote.host.com/~/git/myproject
 * branch            master     -> FETCH_HEAD

Вы получили ветку master с данного пульта дистанционного управления; ссылка FETCH_HEAD теперь указывает на него. Теперь мы переходим к слиянию - точнее, git объединит FETCH_HEAD (удаленную главную ветку) в вашу текущую ветку (предположительно, главную).

Updating 9d447d2..f74fb21
Fast forward

Оказывается, вы не отклонились от главной ветки пульта ДУ, поэтому слияние происходит с перемоткой вперед (тривиальное слияние, когда оно просто перемещает вас вперед по истории). Git отмечает исходную позицию вашей главной ветки (9d447d2) и новую позицию (f74fb21), на которую она была быстро перенаправлена. Если бы вы отклонились от главной ветки удаленного устройства, вы бы увидели здесь результат рекурсивного слияния - Слияние, выполненное рекурсивным , возможно вместе с некоторыми Auto-merged и (о нет!) конфликты слияния!

 app/controllers/myproject_controller.rb |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

Наконец, он показывает разницу между исходной позицией и положением после слияния вашей основной ветки; в основном это то, что вы получите от git diff --stat master @ {1} master .

55
ответ дан 27 November 2019 в 06:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: