Как удалить ветви Git в локальных и удаленных репозиториях — CloudSavvy IT

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

Зачем удалять ветки?

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

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

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

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

Однако это может привести к потере данных, если ссылка ветки указывает на коммиты, которые не были объединены с основной временной шкалой (или другой ветвью). Git распознает, что эти коммиты больше не нужны, поскольку нет активной ссылки на ветку, которая их включает, и очистит их при сборке мусора.

Вы также можете отказаться от удаления веток. Однако ссылка на ветвь не будет перемещаться вместе с мастером, который продолжит движение вперед. Если вы сделаете новую фиксацию в функциональной ветке, она создаст «новую ветку» в истории, которая может быть объединена, но может быть сильно устаревшей.

По этой причине, если вы постоянно не объединяете две ветки, лучше всего удалить ветки функций после их объединения, чтобы очистить вашу историю.

Удалить локальную ветвь

Git не позволит вам удалить ветку, в которой находится HEAD, поэтому вам нужно будет снова переключить рабочую ветку на master. Если, конечно, вы по какой-то причине не захотите удалить мастер.

мастер проверки git

Затем вы можете использовать ветку git с флагом -d для удаления ветки:

git branch -d имя_ветки

Из-за того, как Git обрабатывает ветки, эта команда может завершиться ошибкой при определенных обстоятельствах. Git на самом деле сохраняет три ветви для каждой «ветки»: локальная ветка, удаленная ветка и ветка удаленного отслеживания, обычно называемая origin / branchname.

Флаг -d удаляет только те ветки, которые были добавлены и объединены в ветку удаленного отслеживания. Обычно это то, что вам нужно для обычных операций, но если вы хотите удалить его принудительно, вы можете снова запустить ту же команду с флагом -D:

git branch -D имя_ветки

Имейте в виду, что это приведет к потере данных, если коммиты не объединены.

Удалить удаленную ветку

Также легко удалить ветки на пульте. Чтобы удалить удаленные ветки, запустите git push с флагом -d, что приведет к удалению ветки, если у вас есть доступ для этого.

git push origin -d имя_ветки

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

Однако это не отправит изменения на клиентские машины, пока они не запустят git fetch с флагом —prune, который очистит старые ветки:

git fetch —all —prune

Автоматическое удаление веток запроса на извлечение Github

В Github есть удобная функция для репозиториев, позволяющая автоматически очищать ветки, созданные из запросов на вытягивание. Вы можете включить его в настройках, в разделе «Параметры»> «Кнопка слияния»:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *