Можно ли использовать ветвление с помощью проекта git с одним человеком?
У меня есть небольшой проект на git, на котором я являюсь единственным разработчиком. Пока что я использовал только одну основную ветвь, чтобы заставить ее работать.
Теперь проект как-то работает, и я хотел бы просто реализовать некоторые новые функции. Вопрос в том, должен ли я создать новую ветку для каждой новой функции и слияние ее потом?
Дело в том, что мой рабочий процесс будет просто улучшать "ветвь функций" и в любом случае объединять его с неизменной "главной ветвью", так что имеет смысл создавать новые ветки вообще?
Ответы
Ответ 1
На странице gitworkflows
:
Любая нетривиальная функция потребует несколько патчей для реализации, и может получить дополнительные исправления или улучшения во время его жизни.
Соблюдение всего непосредственно на интеграции проблемы: Плохие коммиты не могут быть отменены, поэтому их нужно вернуть одним, что создает путаницу истории и дополнительный потенциал ошибки когда вы забыли вернуть часть группа изменений. Работа параллельно смешивает изменения, создавая путаница.
Использование "ветвей тем" решает эти проблемы.
Вы должны использовать ветки темы (например, ветки функций), даже если вы являетесь единственным разработчиком.
В дополнение к причинам, указанным выше, я бы добавил:
- Если у вас есть функция, которая займет много времени, работа над ветвью функций позволяет вам легко приостановить работу над этой функцией, чтобы работать над чем-то другим.
- Если есть вероятность, что вам необходимо поддерживать несколько версий вашего кода (то есть ваша текущая версия v2.0, но клиент/пользователь использует v1.0, то использование ветвей темы позволяет легко объединить исправления ошибок в несколько версий.
Ответ 2
Я должен создать новую ветку для каждого новая функция и ее слияние потом?
Да, поскольку на полпути через реализацию этой функции вы обнаружите ошибку остановки шоу в своем производственном коде, и вы будете благодарны за то, что вы можете git checkout master
вернуться к коду, который находится в производстве, и исправить его. Мое правило состоит в том, чтобы всегда иметь мою ведущую ветвь в состоянии развертывания.
Ответ 3
Я бы сказал, да, для меня каждый раз, когда я нажимаю код в производственную среду, я создам ветку версии. Поэтому, если что-то пойдет не так, я могу просто вернуться к этой ветке и исправить ошибку, исправить, а затем объединить мой код обратно в багажник.
Ответ 4
Я бы сказал, что это, вероятно, личное предпочтение, но в некоторых из сольных проектов, над которыми я работаю, иногда полезно по крайней мере создать ветку для новой работы, оставив мастер-филиал доступным для исправления ошибок. Я нахожусь в центре работы над чем-то новым, когда кто-то приходит, сообщая об ошибке существующей версии. В этой ситуации я могу легко отложить новый код и исправить ошибку на главной ветке, а затем вернуться к тем вещам, над которыми я работал. Затем в конце объедините их вместе.
Я обычно не ветку для каждой новой функции. Обычно я не работаю над несколькими функциями одновременно... только один раз в то время, и в этом случае это зависит от того, насколько две функции перекрываются по файлу, что приведет к тому, что я снова вернусь.
Ответ 5
Я говорю "да" о наличии ветвей функций даже во время тривиального проекта с 1 человеком без клиентов.
Причина - рабочий процесс. Если вы используете единый рабочий процесс, который вы можете применять во всех проектах, в которых вы участвуете, тогда меньше нужно ошибаться каждый раз и меньше решений, о которых нужно думать. Это также облегчает жизнь, если ваш "тривиальный" проект внезапно приобретает собственную жизнь: -).
(Один рабочий процесс - это, конечно, идеал, но все, что помогает...)
Ответ 6
Добавление к тому, что говорили другие: ветки так легко создавать и поддерживать в git, почему бы не создать ветку? Даже если вам никогда не понадобится исправление/обновление в старой ветке, вы все равно получите некоторые дополнительные метаданные о своей базе кода через ветки, которые вам понравятся в течение года.
Я большой поклонник создания всех видов ветвей функций по двум причинам: во-первых, вы можете структурировать свой рабочий процесс, чтобы мастер-ветвь всегда была готова к отправке (что довольно круто), а во-вторых, как только вы какая-то история с кучей ветвей функций и т.д., глядя на дерево в чем-то вроде gitk или qgit, дает вам действительно классное ощущение высокого уровня для истории кодовой базы, которой не была бы одна строка.
Ответ 7
Правило большого пальца: если вы нарушаете продукт во время разработки, ветвь.
Предположим, вы обнаружили ошибку в багажнике и хотите исправить ее.
Ответ 8
Это имеет смысл, пока это вам помогает.
Я использую SVN для своих личных проектов, а иногда, когда я хочу исследовать новую функцию или выбрасывать много кода, мне нравится отделять мою основную ветку.
Таким образом, я могу работать над новой функциональностью в течение длительного периода времени (читай: более одного фиксации), если я терплю неудачу, я всегда могу вернуться к основной ветке, и если мне удастся, я могу объединить всю ветку или просто изменения, которые имеют смысл.