Git Master Branch Содержит другую информацию о ветке - PullRequest
0 голосов
/ 29 января 2019

Это может быть поведение по умолчанию, но мне трудно разобраться.Я всегда думал, что ветвь должна быть одной линией, без других «ветвей».Я провел следующий эксперимент:

  1. Инициация репозитория git.
  2. Двойная фиксация (m1, m2) в основной ветви
  3. Извлечение новой ветви с именем "dev"
  4. Фиксация дважды (d1, d2) на ветви dev.
  5. Мастер проверки
  6. Фиксация дважды (m3, m4)

Теперь ветвьвыглядит следующим образом

Before Merge

Насколько я понимаю, в основной ветке 4 проверки, 2 в ветке разработки.

Теперь я выполняю следующие операции:

  1. Слияние с dev-веткой (git merge dev)

Ветка выглядит следующим образом:

enter image description here

Я думаю, что главная ветвь - зеленая, она содержит 5 коммитов.Ветвь разработчика - фиолетовая, она содержит 4 коммита.

На самом деле, в основной ветке я использую git log для проверки коммитов, на самом деле у нее 7 коммитов.Что меня смущает.

Может кто-нибудь помочь объяснить?

1 Ответ

0 голосов
/ 29 января 2019

git log перечисляет все коммиты, достижимые с данного реферала (или HEAD, если ни одного реферата не дано).7 коммитов, которые вы видите , достижимы .Вам может потребоваться указать в журнале некоторые другие конкретные параметры, если вы хотите видеть только части дерева.(Отметьте документ , есть отличные примеры)

Кроме того, ваше удивление может быть следствием неправильного понимания веток в git.Никакой коммит в дереве не принадлежит какой-либо ветви.Все дерево может быть доступно через разные точки, а ветви - это просто ярлыки, указывающие на один коммит .

...