Подтвердить что ты не робот

Что означает результат вывода git?

Я пытаюсь получить более полное понимание git.

Может ли кто-нибудь дать мне простое поэтапное объяснение того, что означает основной вывод git 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(-)
4b9b3361

Ответ 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), с которой она была переадресована. Если бы вы отклонились от удаленной основной ветки, вы увидите здесь результат рекурсивного слияния - Merge made by recursive, возможно, вместе с некоторыми конфликтами слияния Auto-merged <file> и (oh no!)!

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

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