Во-первых, мое личное мнение заключается в следующем, и я знаю по опыту, что обсуждение git рабочих процессов может быть весьма горячим c, поскольку некоторые решения по вкусу.
Однако уже есть несколько (очень распространенных) стратегий ветвления (рабочих процессов) для решения этой и других проблем. Atlassian имеет довольно хороший обзор нескольких моделей.
Для вашей конкретной проблемы c, если вы хотите иметь чистую историю git и работаете только на одной ветви Вы думали сделать git pull --rebase
до git push
(если вы работаете над TestBranch
)? Это дало бы вам «красивую» и прямую историю коммитов, без каких-либо дополнительных затрат (конфликты слияния должны быть исправлены в любом случае)
Если люди работают с определенными c блоками (скажем, новыми функциями или исправлениями), введение ветки 'feature' или 'fix' обычно является хорошей идеей и аналогично тому, что вы предложили в (2). Это также добавляет хорошую область для фиксации, поэтому, когда ветки имеют четкое имя (скажем, feature/tooltip
), вы мгновенно узнаете, где также искать изменения для этой функции. Разница в том, что вы предлагаете, заключается в том, что ветви не ограничиваются пользователем, работающим над ним, а скорее функцией / исправлением, которое оно содержит. Так что это может привести к тому, что несколько (но, как правило, несколько, так как эти ветви должны быть недолговечными) разработчики работают над одной веткой.
Кроме того, если я правильно понимаю ваши два подхода, оба метода создадут одинаковое количество Слияние конфликтов и ветвей, поэтому я не вижу улучшения в (2).