2016-04-07 4 views
5

В моей компании мы просим разработчиков скворовать коммиты на feature ветвях перед слиянием в develop. После раздачи разработчик подталкивает GitHub и записывается в GitHub для создания запроса на перенос.Почему объединенный запрос на pull в GitHub создает дубликат commit?

Когда запрос втягивания объединяются, мы в конечном итоге видит два коммитов в истории develop отрасли:

  1. коммита, говоря «слит запрос тянуть»
  2. одиночке, раздавленные совершить от feature

Почему это происходит? И как мы можем избежать этого? Я читал аналогичный Q&A about avoiding "merge commit hell", но моя цель - использовать интерфейс GitHub для создания, отслеживания и обсуждения запросов на загрузку.

+0

Я думаю, что второй коммита совершить слияние. Чтобы избежать этого, вы объедините его вручную, а затем нажмите на GitHub. GitHub не имеет функции, чтобы отклонить фиксацию слияния. Проверьте [здесь] (https://stackoverflow.com/questions/16358418/how-to-avoid-merge-commit-hell-on-github-bitbucket). – xuhdev

ответ

7

Конец, который вы видите, это слияние слиянием; обычно они автоматически создаются git в любое время, когда вы выполняете непереходное слияние, но вы также можете заставить его всегда создаваться. И именно это делает GitHub, когда вы используете кнопку слияния.

Если вы не хотите, чтобы слияния совершались, вам необходимо выполнить вишневый захват на мастер вместо использования кнопки слияния. Внутри веб-интерфейса GitHub нет возможности сделать это.

Edit: GitHub теперь добавил squash and merge и rebase and merge возможности в пределах их веб-интерфейса:

enter image description here

+0

Кажется, теперь есть способ избежать слияния в GitHub ... Это действительно отстой. Я вообще люблю интерфейс запроса на выбор GitHub, но эти запросы слияния раздражают и определенно путают меня, потому что diff показывает точно такую ​​же разницу, как показывает раздавленная фиксация, предшествующая ей. –

+1

Слияния совершают гораздо больше, когда вы смотрите на [древовидный вид истории] (http://stackoverflow.com/q/5382255/120999), который, к сожалению, GitHub не предоставляет. Я люблю GitHub, но по мере того, как идут годы, я трачу все больше времени на использование инструментов git в терминале вместо «хороших» представлений, которые они предоставляют, поскольку это неизбежно становится более запутанным, когда вы пытаетесь что-то сделать за несколько базовых операций. –