Какие коммиты будут удалены при смене базовой ветки пулл-запроса на Github? - PullRequest
1 голос
/ 15 июня 2019

Соавтор создал запрос на извлечение данных в хранилище Github, основанное на ветви master.Я хотел бы объединить это со следующей веткой релиза, над которой я сейчас работаю (2.0.3) вместо ветки master.Как указывают несколько ответов, я могу сделать это, нажав «Изменить» рядом с заголовком запроса на извлечение, а затем изменив базовую ветвь.

Однако, когда я это делаю, я получаю предупреждение «Некоторые коммиты изСтарая базовая ветка может быть удалена из графика.На странице справки Github также говорится, что «Когда вы изменяете базовую ветвь вашего запроса на извлечение, некоторые коммиты могут быть удалены с временной шкалы».

Может кто-нибудь объяснить, что коммит ссылается на это предупреждение?и когда они могут быть удалены?Являются ли эти коммиты в ветви master, запросе pull или новой базовой ветви (2.0.3)?И относится ли «удалено из шкалы времени» только к странице обсуждения запроса на извлечение на Github или это означает удаление коммитов из хранилища?

Обновление

Как указал @RomainValeri, этот процесс не добавляет и не удаляет какие-либо коммиты из репозитория, он просто изменяет коммиты, показанные в запросе на получение, так как некоторые из них могут больше не попадать между основанием ветви и подсказкой.,Тем не менее, подсказка все еще будет в том же конечном состоянии, что и раньше.

В моем случае запрос на получение (feature) после моего запроса отклонился master, например:

A---B---C---D <<< master
     \       \
      \       E---F <<< feature (pull request)
       \
        G---H <<< 2.0.3

Таким образом, когда я изменил базу запроса на извлечение с master на 2.0.3, теперь он сообщил, что запрос на включение включает в себя коммиты C, D, E и F вместо просто E и F. Однако я не сделал 'Мне не нужны C и D в запросе на извлечение, поэтому я сначала объединил master в 2.0.3Это дало следующее:

A---B---C---D ---<<< master
     \       \    \
      \       \    E---F <<< feature (pull request)
       \       \
        G---H---I <<< 2.0.3

Затем, когда я изменил основание feature на 2.0.3, он все еще просто показывал E и F в запросе на извлечение (дополнительный код после I), что и былоЯ хотел.

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

1 Ответ

1 голос
/ 15 июня 2019

Я не пользователь github, скорее bitbucket, но понятия git на работах здесь одинаковы, и если я не ошибаюсь, вот что это значит:

Давайте рассмотрим пример ситуацииниже

A---B---C <<< master
     \
      D---E---F <<< feature-1
           \
            G---H <<< feature-2

Здесь запрос на получение feature2 > master будет содержать 4 коммита: D, E, G и H.

Если вы сейчас редактируетеДля запроса Pull в качестве базовой ветви будет feature-1, в обновленном запросе feature-2 > feature-1 будут перечислены только G и H.

. Таким образом, когда вы обновляете страницу запроса, D иE были удалены из области запроса на извлечение .Но нет никакого способа, которым запрос на удаление мог бы удалить коммит из любого места, это «аддитивная» операция, она только создает новые данные.

Предупреждение, по иронии судьбы, каким-то образом вызывает то, что он пытается предотвратить: люди сходят с умао том, что они потеряли свои коммиты, поскольку они внезапно перестали видеть их в списке.Github хотел сказать вам, что «ваши коммиты будут удалены только из списка изменений», а не из вашего репо.

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