Действительно ли мудро использовать ветвление с индивидуальным проектом мерзавца?

Вот мой трюк:

public class Main {

    public static void main(String[] args) throws Exception {

        System.out.println(Main.<String> getClazz());

    }

    static <T> Class getClazz(T... param) {

        return param.getClass().getComponentType();
    }

}
16
задан Karel Bílek 15 November 2009 в 20:23
поделиться

8 ответов

Из справочной страницы gitworkflows :

Любая нетривиальная функция потребует несколько патчей для реализации, и может получить дополнительные исправления или улучшения

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

Использование "тематических веток" решает эти проблемы.

Вы должны использовать тематические ветки (также известные как ветки функций), даже если вы единственный разработчик.

В дополнение к причинам, указанным выше, я бы добавил:

  • Если у вас есть функция, которая потребует долгое время для завершения, работа над функциональной веткой позволяет вам легко приостановить работу над этой функцией, чтобы поработать над чем-то еще.
  • Если есть вероятность, что вам нужно поддерживать несколько версий вашего кода (т. е. ваша текущая версия - v2 .0, но клиент / пользователь использует v1.0, тогда использование тематических веток позволяет легко объединять исправления ошибок в несколько версий.
19
ответ дан 30 November 2019 в 16:50
поделиться

Основное правило: если вы ломаете продукт во время разработки, ответвление. Предположим, вы нашли ошибку в багажнике и хотите ее исправить.

0
ответ дан 30 November 2019 в 16:50
поделиться

следует ли создавать новую ветку для каждого новая функция и объединение ее обратно потом?

Да, потому что на полпути к реализации этой функции вы обнаружите в своем производственном коде ошибку, останавливающую показ, и будете благодарны, что можете git checkout master вернуться к коду, который находится в производстве и исправьте его. Мое правило - всегда иметь мою главную ветку в состоянии развертывания.

8
ответ дан 30 November 2019 в 16:50
поделиться

Я бы сказал, да, для меня каждый раз, когда я помещаю код в производственную среду, я буду создавать ветку версии. Так что, если что-то пойдет не так, я могу просто вернуться в эту ветку и заставить исправление выдвинуть исправление, а затем слить мое изменение кода обратно в ствол.

3
ответ дан 30 November 2019 в 16:50
поделиться

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

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

2
ответ дан 30 November 2019 в 16:50
поделиться

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

Причина - рабочий процесс. Если вы используете единый рабочий процесс, который можно применить ко всем проектам, в которых вы участвуете, то каждый раз будет меньше ошибок и меньше решений, о которых нужно думать. Это также облегчает жизнь, если ваш «тривиальный» проект внезапно начинает жить собственной жизнью: -).

(Единый рабочий процесс, конечно, идеален, но все, что помогает ...)

2
ответ дан 30 November 2019 в 16:50
поделиться

Это имеет смысл, если помогает вам.
Я использую SVN для своих личных проектов, и иногда, когда я хочу изучить новую функцию или выбросить много кода, мне нравится ответвляться от своей основной ветки.

Таким образом, я могу работать над новой функциональностью в течение длительного периода времени (читай: более одного коммита), если я потерплю неудачу, я всегда могу вернуться к основной ветке, и в случае успеха я могу объединить всю ветку или просто изменения, которые имеют смысл.

0
ответ дан 30 November 2019 в 16:50
поделиться

В дополнение к сказанному другими: ветки так легко создавать и поддерживать в git, почему бы не создать ветку? Даже если вам никогда не понадобится исправлять ошибки / обновлять старую ветку, вы все равно получите дополнительные метаданные о вашей кодовой базе через ветки, которые вы будете счастливы получить через год.

Я большой поклонник создания всевозможных ветвей функций по двум причинам: во-первых, вы можете структурировать свой рабочий процесс так, чтобы основная ветка всегда была готова к отправке (что довольно круто), а во-вторых, если у вас есть некоторая история с кучей функциональных веток и тому подобным, просмотр дерева в чем-то вроде gitk или qgit дает вам действительно крутое высокоуровневое ощущение истории кодовой базы, чего не могло бы быть ни одной строчки.

2
ответ дан 30 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

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