Git, как и большинство систем управления версиями, в высшей степени хорошо подходит для использования несколькими разработчиками. Действительно, это один из основных пунктов системы контроля версий.
Нет необходимости создавать филиал для каждого пользователя. Я даже зашел так далеко, чтобы сказать, что это будет контрпродуктивно. Если вы работаете над одной и той же функцией, вы, вероятно, захотите получить изменения друг друга, потянув и объединившись. Создание филиалов на одного пользователя является избыточным и будет осложнять вещи без необходимости.
Ситуация с фиксацией, которую вы описываете, не является проблематичной. Если другой пользователь создал новую фиксацию в той же ветви, что и вы, вы остановитесь, если попытаетесь выполнить push
. Вместо этого вы должны сначала выполнить pull
с помощью фиксации другого пользователя и слить (или переупаковать) свою работу с этими изменениями. Это стандартное поведение git pull
.
Обычная практика заключается в создании филиалов, основанных главным образом на функциях. Если вы хотите руководство по ветвлению, this is a popular strategy.
У вас есть одна ветка для каждого из вас, если только вы не работаете на одной машине. Когда вы клонируете свое репо, вы получаете свой * собственный * набор ветвей, которые называются так же, как и ветви всех остальных, но они все еще * ваша собственная ветвь *. – meagar
@meagar Звучит интересно, не могли бы вы рассказать об этом? – danijar
Каждый клонированный экземпляр хранилища - это полностью автономная вещь. Вы можете делать все, что угодно, с вашей веткой, вы не будете наступать на чужие пальцы ног, пока не попытаетесь нажать. Когда вы нажимаете и тянете, вы выполняете слияние своего локального филиала с удаленной ветвью (или наоборот) в качестве ветви «отслеживания». Это идентично объединению любых двух ветвей на вашей локальной машине; на самом деле, 'git pull' - это просто выборка, за которой следует слияние. Для простоты 'git push' ограничивает слияние с быстрыми слияниями, поскольку вы не можете эффективно разрешать удаленные конфликты. – meagar