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


11

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

Мы используем Git со следующими ветками:

  • мастер
  • релиз
  • развивать

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


1
Напоминает мне рабочие области Accurev, за исключением того, что они не привязаны к MAC-адресу конкретной машины. Мне это нравится.
Брэндон

возможный дубликат ветви или нет ветви?
комнат

1
Почему у nat есть уникальная ветвь для каждой добавляемой новой функции?
Мартин Йорк,

@ Локи Да .. это хорошая идея ..
balanv

Ответы:


4

Нет! Хорошей практикой является наличие пространства имен удаленных веток для каждого разработчика.

Часто одной ветки недостаточно, поэтому разработчик может либо перемотать ее слишком много, либо она окажется не очень полезной. Вы скорее хотите сказать, что разработчик может выдвинуть все, что он хочет, под своим именем/ . Они могут использовать его для публикации предварительных версий для других, предоставления версии для тестирования кем-то другим или даже для интеграции кем-то еще.

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


2

Вероятно, я бы не дал каждому разработчику ветку на центральном сервере, если у вас нет какой-то инфраструктуры в стиле github, которая позволяет им самим создавать и уничтожать ветки и четко документировать, для чего они. Некоторым разработчикам понадобится более одной ветви, а некоторым вообще не понадобится, но вы создаете беспорядок для всех, чтобы разобраться и административные накладные расходы для себя.

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


1
По умолчанию каждый может создать ветку. Github позволяет создавать целые репозитории, но в этом случае это излишне.
Ян Худек

1

Это зависит от того, как ваша команда разработчиков и задачи организованы. На мой взгляд, указанная вами модель будет работать лучше всего, если:

  1. Каждый разработчик работает над самостоятельными задачами самостоятельно.
  2. Все разработчики вносят вклад в одну и ту же задачу.

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


1

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

Если у вас есть несколько разработчиков, работающих над одной и той же функцией, вероятно, лучше создавать ветки на основе этой функции, а не разработчика.


1

Если вы работаете с Git, вы должны попробовать Pull Requests.

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

Когда вы закончите объединение, вы попросите кого-то еще в команде проверить и объединить вашу ветку с главной веткой. Никогда не объединяйте свои собственные! Пока никто не прокрался и не сделал еще один запрос на извлечение, вы гарантированно успешно слились. Поскольку все знают о запросе на извлечение, в любом случае не должно быть, чтобы несколько человек сливались с мастером одновременно.

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

Я обычно создаю одну ветку для каждой задачи. Git хорош тем, что различает локальные коммиты и толчки. Это дает некоторые преимущества каждому человеку, имеющему свою собственную ветвь без всей сложности.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.