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

разработке избежать одновременных изменений в одном и том же файле? Мне интересно понять, существуют какие-либо возможности блокировки файла? Просто если допустим несколько человек внесут свои правки в код, а другой вообще захотел вдруг просто рефакторинг сделать, как сводить концы с концами? Садить какого-то менеджера который бы мониторил все изменения и решал что нужно объединить в мейн? Даже если так, то как ему понять что нужно объединять и тд? Регулярно по таким вопросам собирать консилиум из чуваков которые вносили изменения в этот файл? Я только пытаюсь вкуривать как работать с гитом при групповой разработке. В соло мне все ясно

31 ответов

25 просмотров

Не надо с этим разбираться, коллективная работа предполагает конфликты.

ᅠ- Автор вопроса
Anatoly Shirokov
Не надо с этим разбираться, коллективная работа пр...

То есть необходимо регулярные согласования и условная привязка в джире как задача по модулю?


То есть необходимо регулярные согласования и услов...

Конфликт возникает при мерже таски в dev или мастер бранч, тогда и разруливайте. Какой у вас flow?

ᅠ- Автор вопроса

Каждая задача отдельная ветка

Да, но как вы релиз готовите, как тестируете?

Anatoly Shirokov
Да, но как вы релиз готовите, как тестируете?

Причем тут гит? Это больше процессы разработки и они внезапно разные со своими плюсами и минусами


То есть необходимо регулярные согласования и услов...

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

Anatoly Shirokov
Поэтому я спросил про flow.

Существуют разные flow Многие думают что git flow silver bullet но мой опыт говорит что это нужно далеко не всем Существует например github flow более простой и гибкий

ᅠ- Автор вопроса
Валік
Если регулярно требуется разрешать сложные конфлик...

Они не регулярно, мы пока просто хотим использовать гит в команде, и встал вопрос который я задал в начале, типа а вот что если. Ну смысл то я понимаю, что таких конфликтов не должно возникать если правильно выстроить процессы))


Они не регулярно, мы пока просто хотим использоват...

Нет они возникают И решаются человеком что вливает общением с автором другова комита После разрешение конфликта ставить надо в ревью автора прошлых строк


Они не регулярно, мы пока просто хотим использоват...

А как вы сейчас без гита разруливаете конфликтные ситуации?

ᅠ- Автор вопроса
Serge L.
А как вы сейчас без гита разруливаете конфликтные ...

У нас есть встроенное хранилище версий которое использует блокировки. Я захватываю какой-либо модуль и вношу изменения. Отпускаю изменения помещаются в хранилище, а затем если следующий разработчик захочет внести изменения он либо столкнется с блокировкой либо, получит те изменения что вносил я. Ну и оно работает по принципу единой ветки без возможности разветвления и тд. Очень громоздкая штука и работать с ней затруднительно в плане просмотра каких-либо версий, сравнений))

ᅠ- Автор вопроса

Они не регулярно, мы пока просто хотим использоват...

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

ᅠ- Автор вопроса
Serge L.
А в команде есть кто-нибудь, кто в гите шарит? Есл...

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


Работает над этим, пока просто изучаем как с ним р...

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

ᅠ- Автор вопроса
Serge L.
Попробуйте тогда для тестов поделать мерж-конфликт...

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


А мы пробовали делать изменения в одном и том же ф...

Если это научились, то осталось про модели ветвления чекнуть. И как сказали выше, НЕ используйте “git flow”, а присмотритесь к любому другому ветвлению

ᅠ- Автор вопроса
Serge L.
Если это научились, то осталось про модели ветвлен...

Можно какой-нибудь пример? Или как загуглить?)


Можно какой-нибудь пример? Или как загуглить?)

В гите есть несколько популярных. Тот же ”github flow”, так можете и загуглить. Или поищите просто какие-нибудь обзорные статьи про них. Только “git flow” не используйте. Чем более простое ветвление у вас в итоге будет, тем лучше.

ᅠ- Автор вопроса
Serge L.
В гите есть несколько популярных. Тот же ”github f...

Ну мы вот планировали оставить только ветку мейн и от нее ветвить задачи а потом просто сливать по завершению. Ну это как по мне такой простой вариант ветвления


Ну мы вот планировали оставить только ветку мейн и...

А продумали, как будете релизы делать? И, к слову, насколько большие у вас обычно фичи?

ᅠ- Автор вопроса
Serge L.
А продумали, как будете релизы делать? И, к слову,...

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

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

Vadim Goncharov
> Садить какого-то менеджера Организационные проб...

Я слышал, что иногда даже резолвить мерж-конфликты сажают одного человека.

ᅠ- Автор вопроса

Я про это читал просто

Не, обычно так не делают, каждый сам резолвит мерж-конфликты, с которыми сталкивается. Если это бы делал отдельный человек, то он стал бы незаменимым с бас-фактором 1.

ᅠ- Автор вопроса
Serge L.
Не, обычно так не делают, каждый сам резолвит мерж...

Ну да, да и такому человеку сходу сложно понять, че тут надо че не надо и регулярный консилиум такое себе решение ну по крайней мере я так представляю такую работу 🤷🏼‍♂️

Похожие вопросы

Обсуждают сегодня

Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
И? Все равно глазами проверять надо каждое поле
Andrii Kurdiumov
4
Ну есть у нас десяток компаний которым надо. Остальным то зачем?
Andrii Kurdiumov
4
Всем привет! Взялся портировать модули на 18 версию, лезет _logger.log(log_level, 'no translation language detected, skipping translation %s', frame, stack_info=True) А чт...
Max Lit
3
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Доброе утро, а кто то делал Google аналитику через php ? curl_setopt($ch, CURLOPT_NOSIGNAL, true); Это должно быть async без ожидания ответа. Вообще php нормально с таким с...
Max Dubovsky
9
Карта сайта