Запросы Github, показывающие все новые и новые слияния - PullRequest
0 голосов
/ 21 июня 2019

Я на самом деле довольно опытен с git, но эта странность сбивает меня с толку.

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

Стандартный материал.

Одна вещь, которую я заметил в этом конкретном репо, это то, что я получаю все больше и больше "изменений" в моей ветке , и они просто объединяются со днями ранее .

Например, мой последний пиар:

Merge branch 'master' of github.com:xxxx/xxxx into master

8 раз, самый старый из которых 11 дней. До всех этих слияний - один мой старый коммит , который уже был слит с мастером, и я вижу этот коммит каждый раз, когда делаю пиар. В самом конце - единственный коммит, который я добавил в свою ветку.

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

Также локально, если я удаляю ветвь, которая уже была объединена, я получаю предупреждение "содержит коммиты, которые не были объединены с мастером", хотя на самом деле это не так.

Каждый раз, когда я делаю новый PR, этот старый коммит - это первое, что записывается в журнале, так что мне интересно, есть ли что-то напортаченное?

Есть идеи? Собираюсь просто уничтожить мой репо и переклонировать.

1 Ответ

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

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

Я бы порекомендовал следующий процесс, которому легко следовать:

  • git checkout master
  • git pull
  • git checkout [feature branch]
  • git rebase origin/master -i
  • git push origin [feature-branch] --force

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

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

Ура!

...