Git пул реквест всегда показывает проблему с коммитами

Я использую гитлаб. Мой вопрос касается запросов на извлечение. Я создал ветку "feature". В конце мы создаем запрос на включение в некоторую ветку «dev». Теперь проблема в том, что для одной и той же ветки «dev» будет выполняться «n» запросов на вытягивание. Итак, теперь, если кто-то объединил запрос на слияние какого-то другого человека в ветку «dev», тогда мне снова придется взять последнюю тягу, исправить конфликты, а затем снова зафиксировать и нажать, чтобы мой последний был добавлен в мой запрос на тягу.

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

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

Итак, любое решение для этого? или это все делают то же самое, что упоминалось выше?

Вкратце: я столкнулся с этой проблемой: gitlab Запрос на слияние ветки A с разработкой (3 коммита позади), стоит ли мне беспокоиться?

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

bk2204 10.12.2020 03:22

@ bk2204 да, это проблема как для утверждающего, так и для разработчика. Поскольку утверждающий не может объединить его из-за «за коммитами», и разработчик должен всегда обновлять этот MR каждый раз, когда какие-либо новые коммиты добавляются в ветку dev. Как вы сказали, мы все еще можем объединиться, но действительно ли это разрешено и какой вариант запретить? и в случае слияния, что делать, если возникнут конфликты после слияния MR?

john 10.12.2020 04:54

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

bk2204 11.12.2020 00:47

@ bk2204 Что делать в случае конфликтов? (предположим, если вы являетесь утверждающим)

john 11.12.2020 05:01

@ bk2204 bk2204 У меня был вопрос к вашему ответу .. не могли бы вы проверить ..

john 12.12.2020 08:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
865
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Невозможно объединиться, если есть конфликты. В таком случае обычно вы просите исходного отправителя перебазировать, потому что он написал код и лучше всего разбирается в устранении конфликтов. Как только это будет сделано, вы можете объединиться.

Если мы напрямую объединимся, игнорируя предупреждение «behind commits», то предположим, что в случае конфликта все конфликтные изменения объединяются в ветку dev, а затем тот, кто берет последние из dev, получает все конфликтующие файлы, верно?

john 12.12.2020 08:10

Нет. Если есть конфликты, объединиться не получится. GitLab не должен позволять вам.

bk2204 12.12.2020 17:27

в порядке Хорошо. еще одно: в мерж-реквесте любой утверждающий сливается напрямую (даже если он показывает, что позади 2 коммита, например: miro.medium.com/max/1642/1*cgLb6Th7ZCha01oupEG4JA.png) или они попросить разработчика объединить dev с функцией и нажать, чтобы решить вышеуказанную проблему?

john 13.12.2020 07:20

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

bk2204 13.12.2020 19:44

Другие вопросы по теме