Подтвердить что ты не робот

Что делать с экспериментальными не объединенными ветвями git?

Каковы текущие лучшие практики с ветвями git, которые были созданы для проверки решения проблемы и не были объединены, потому что процесс проверки показывает, что они неправильные или есть лучшие решения проблемы?

Пример. В проекте fizzbuzz есть сообщение об ошибке, сообщающее о сбое в пустых полях.

  • Я создаю новую ветвь handle-empty-fields и делаю две фиксации этой ветки, "решая" проблему.
  • Затем я отправлю эту ветку менеджеру проекта fizzbuzz, связав его в отчете об ошибке.
  • Кто-то находит ошибку в моем исправлении, пишет другой патч и этот патч принимается.

Теперь код в handle-empty-fields моем коде бесполезен: он неверен и больше не может быть применен к коду, но он был указан в этом отчете об ошибке.

Что мне делать? Держите ветку? Я быстро закончу десятками заброшенных веток, и git не имеет возможности отметить ветку как заброшенную или закрытую. Удалить ветку? Но тогда люди, смотрящие на этот отчет об ошибке, найдут его и получат 404.

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

Обновить: похоже, что github никогда не удаляет коммиты, содержащиеся в запросах на pull. Итак, если вы нажмете свои изменения, включите их в запрос на вытягивание, вы можете позже удалить ветку, не теряя при этом никаких изменений. Ну, пока github все еще работает;).

4b9b3361

Ответ 1

git update-ref refs/Attic/handle-empty-fields refs/heads/handle-empty-fields

В качестве альтернативы сохранению мертвых ветвей в тегах вы можете использовать отдельное пространство имен refs. Поверхность заключается в том, что список тегов остается незагроможденным. Нижняя сторона движется от фарфора до уровня сантехники git.

Ответ 2

Как я это делаю, это дать ему тег. Используйте полный тег и дайте ему описательное имя. Затем вы можете удалить ветвь, чтобы она не отображалась в ваших списках веток, но поскольку она помечена, ветвь все еще может быть воссоздана путем проверки ветки. Все фиксации на теге по-прежнему будут доступны, и вы не потеряете никаких коммитов в git gc Что-то вроде этого, возможно:

git tag -a partialBugfixXXX -m"Tagging a branch that went into fixing bug XXX"

Ответ 3

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

  • Добавьте комментарий к отчету об ошибке, указав, что упомянутая ветка оказалась бесполезной и была удалена. Если вы чувствуете, что отрасль имеет какое-то значение, кратко опишите, что вы сделали. Таким образом, люди получают необходимую информацию, даже если ветка отсутствует.

  • Держите ветку, но как-то переименуйте ее, чтобы пометить ее как "заброшенную". Добавьте комментарий к отчету об ошибке, чтобы указать это (и измените ссылку на ветку). Например, у вас может быть какое-то соглашение, например, префикс "OLD-" для имен ветвей.

  • Пометьте ветку, затем удалите ее (и снова упоминайте об этом в записи об ошибке bb). Таким образом, ветвь может быть удалена, но коммиты по-прежнему доступны через тег. Обратите внимание, что git предлагает простые пространства имен для тегов (и ветвей) - вы можете включить '/' в имя. Вы можете просто согласиться на соглашение, например, использовать теги под "oldbranch/". (Адаптировано из ответа Абизерна.)

  • Как только ветвь была объединена, вы можете просто указать/связать фиксацию слияния в отчете об ошибке. Тогда ветка, вероятно, менее интересна, потому что она содержится в фиксации слияния.

Как правило, вы можете принять специальное соглашение об именах для исправления ветвей.

В моем (личном) репозитории git для каждой ошибки я обнаруживаю, что сначала открываю ошибку в DB ошибки. Если я потом работаю над этим, я создаю ветку, имя которой заканчивается идентификатором ошибки (например, "opencrash-342", "handle_empty_file-663" ). Таким образом, связь между DB DB и ветвями очевидна.

Кроме того, если список ветвей слишком длинный, вы можете всегда фильтровать с помощью прилагаемого идентификатора (например, составить список закрытых ошибок и небольшой script, чтобы отфильтровать их из вывода журнала git "и т.д.).

Ответ 4

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