Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Сравнение ветвей в запросе на вытягивание

Запросы на вытягивание отображают объекты diff для сравнения изменений, внесенных в ветвь раздела, с базовой ветвью, с которой вы планируете объединить изменения.

Примечание. При создании запроса на вытягивание можно изменить базовую ветвь, с которой вы сравниваете изменения. Дополнительные сведения см. в разделе Создание запроса на вытягивание.

Предлагаемые изменения можно просмотреть на вкладке "Измененные файлы".  Вкладка "Измененные файлы" запроса на вытягивание

Вместо того чтобы просматривать сами фиксации, вы можете просмотреть предлагаемые изменения в том виде, в котором они будут отображаться в файлах после объединения запроса на вытягивание. Файлы отображаются в алфавитном порядке на вкладке "Измененные файлы". Добавления к файлам отображаются зеленым цветом и предваряются знаком +, а удаляемое содержимое отображается красным цветом и предваряется знаком -.

Варианты просмотра изменений

Совет. Если вам трудно понять контекст изменений, можно нажать кнопку Просмотреть на вкладке "Измененные файлы", чтобы просмотреть весь файл с предлагаемыми изменениями.

Существует несколько вариантов просмотра изменений.

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

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

Меню параметров просмотра изменений

Чтобы упростить просмотр изменений в большом запросе на вытягивание, можно отфильтровать различия, чтобы отобразить только выбранные типы файлов, показать файлы, для которых вы являетесь CODEOWNER, скрыть уже просмотренные файлы или скрыть удаленные файлы. Дополнительные сведения см. в разделе Фильтрация файлов в запросе на вытягивание по типу файла.

Раскрывающееся меню фильтрации файлов

Причины, по которым изменения не отображаются

Трехточечные и двухточечные сравнения изменения Git

Есть два метода сравнения для команды git diff: двухточечный (git diff A..B) и трехточечный (git diff A...B). По умолчанию запросы на вытягивание вё GitHub показывают трехточечное сравнение.

Трехточечное сравнение изменений Git

Трехточечное сравнение показывает разницу между последней общей фиксацией обеих ветвей (база слияния) и последней версией тематической ветви.

Двухточечное сравнение изменений Git

Двухточечное сравнение показывает разницу между последним состоянием базовой ветви (например, main) и последней версией тематической ветки.

Чтобы просмотреть две ссылки на коммитиши в двухточечном сравнения на GitHub, можно изменить URL-адрес страницы "Сравнение изменений" репозитория. Дополнительные сведения см. в описании термина "committish" в глоссарии Git на сайте книги Pro Git.

Например, этот URL-адрес использует сокращенные семизначные коды SHA для сравнения фиксаций c3a414e и faf7c6f: https://github.com/github/linguist/compare/c3a414e..faf7c6f.

Двухточечное сравнение изменений сравнивает две ссылки на коммитиши Git, например SHA или OID (идентификаторы объектов), непосредственно друг с другом. На GitHub ссылки на коммитиши Git в двухточечном сравнении изменений должны отправляться в тот же репозиторий или его вилки.

Если вы хотите имитировать двухточечное сравнение изменений в запросе на вытягивание и увидеть сравнение между последними версиями каждой ветви, можно объединить базовую ветвь в ветвь раздела, которая обновляет последнего общего предка между ветвями.

Дополнительные сведения о командах Git для сравнения изменений см. в разделе Git diff options (Параметры сравнения изменений Git) на сайте книги Pro Git.

Сведения о трехточечном сравнении в GitHub

Так как трехточечное сравнение сравнивает с базой слияния, основное внимание уделяется тому, что добавляет запрос на вытягивание.

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

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

Частые слияния

Чтобы избежать путаницы, чаще объединяйте базовую ветвь (например, main) в ветвь раздела. При объединении базовой ветви различия, показываемые двухточечным и трехточечным сравнениями одинаковы. Мы рекомендуем объединять запрос на вытягивание как можно скорее. Это побуждает участников делать запросы на вытягивание меньшего размера, что является общей рекомендацией.

Дополнительные материалы