GitHub: коммит меняется после слияния - PullRequest
0 голосов
/ 17 октября 2018

ОК, это глупо, я не понимаю, чего мне здесь не хватает:

  1. Есть репозиторий, который я единственный разработчик, работающий над этим.
  2. Iсоздайте ветку, поработайте над ней, сделайте один коммит (adb0ce3), нажмите его и создайте запрос на получение для мастера.
  3. Я иду в GH, иду в PR, проверяю коммит в представлении фиксации.Коммит (adb0ce3) есть.Все хорошо!
  4. Мой коллега просто объединяет PR.
  5. Я перехожу к коммиту просмотра главной ветви.Есть коммит с тем же сообщением, что и моё коммитное сообщение, указывающее на мой PR с точной разницей / изменениями, которые я сделал.Но дело в том, что идентификатор фиксации отличается (de5db73), и, конечно, когда я пытаюсь синхронизировать свой локальный репозиторий, git жалуется

    предупреждение: `rad-branch 'был удален в источнике, но не отображаетсяслился с мастером

  6. Когда я проверяю график сети, моя ветвь еще не сливается (я восстановил свою ветку)!network graph

Я не знаю, что здесь происходит.AFAIK нет силового толчка или чего-то в этом роде.Насколько я понимаю, это должно было быть простое ускоренное слияние.Это случается со мной время от времени.Кто-нибудь знает, в чем может быть проблема?

ОБНОВЛЕНИЕ: AFAIK не было сквоша или чего-то подобного. Оказалось, что пиар был объединен с сквошом!

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

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

GitHub запускает моральный эквивалент git merge --squash или git rebase или git merge --no-ff. Если пользователь, который принимает и объединяет ваш запрос на получение, вызывает последний, ваш хеш коммита остается неизменным, и они также добавляют коммит слияния, чтобы это произошло.Но если пользователь, который принимает и объединяет ваш запрос на получение, использует одно из двух других действий, ваш коммит (или коммиты) отбрасывается .Вместо этого они добавляют свои коммиты, которые похожи на ваши, но отличаются.В этом случае ваши коммиты не объединяются, и вы должны выбросить свои коммиты и переключиться на их.(Это не супер-дружелюбно с их стороны - GitHub или человека, который принял запрос на извлечение, - но это ваш выбор.)

0 голосов
/ 17 октября 2018

Мне кажется, что у вас есть сквош или ребаз или что-то похожее на то, что включено для вашего хранилища.

Простое слияние поддержит ваши коммиты и просто создаст новое поверх мастера и вашей собственной ветви.и продвиньте master.

То, что вы описываете, подразумевает некоторую конфигурацию, чтобы изменить это поведение по умолчанию.Посмотрите настройки репо, особенно те, которые связаны с запросами на слияние и получение.

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