У меня было две ветви: masterи branch1. Я только что слился branch1обратно, masterи я закончил с этой веткой. Я должен удалить это или просто позволить этому сидеть без дела? Вызовет ли это потерю данных?
Кроме того, git предупредит вас (и откажется удалить ветку), если решит, что вы еще не полностью слили ее. Если вы принудительно удалите ветвь (с git branch -D), которая еще не полностью объединена, вам придется сделать несколько трюков, чтобы вернуть не слитые коммиты (см. Ниже).
Есть несколько причин, чтобы держать ветвь, хотя. Например, если это ветвь функции, вы можете захотеть исправлять ошибки для этой функции, все еще находящейся внутри этой ветви.
Если вы также хотите удалить ветку на удаленном хосте, вы можете сделать:
git push origin :branch1
Это принудительно удалит ветку на удаленном компьютере (однако это не повлияет на уже извлеченные репозитории и не помешает кому-либо с принудительным доступом повторно открыть / создать его).
git reflogпоказывает недавно проверенные ревизии. Любая ветвь, которую вы проверили в недавней истории хранилища, также будет отображаться там. Помимо этого, git fsckбудет инструментом выбора в любом случае коммит-потери в git.
Если вы хотите сохранить ветку, вы можете создать тег перед его удалением. Если вы хотите вернуться к этому моменту, вы можете проверить этот тег.
Joqus
3
@Joqus Я бы предпочел оставить это как ветку в этом случае. Только не публикуй это.
Йонас Шефер
На всякий случай - если вы хотите «полностью объединить» ветку перед ее удалением, просто нажмите эту ветку после объединения, но перед удалением. Что-то вродеgit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
автомат
25
Я предпочитаю RENAME, а не DELETE
Все мои ветви названы в виде
Fix/fix-<somedescription> или
Ftr/ftr-<somedescription> или
и т.п.
Используя башню , как мой мерзавец конца переднего, он аккуратно организует все Ftr/, Fix/, и Test/т.д. в папки.
Как только я закончу с веткой, я переименую их в Done/...-<description>.
Таким образом, они все еще там (что может быть полезно для предоставления истории), и я всегда могу вернуться назад, зная, что это было (функция, исправление, тестирование и т. Д.)
Кажется излишним сохранять эти ветви и безумно переименовывать их. Я что-то здесь упускаю? Вы всегда можете воссоздать ветку. stackoverflow.com/questions/3640764/…
ksav
не имеет смысла держать ветви после того, как они были объединены
растаман
2
+1 за идею переименования в Fix, Test and Done ... Сохранение веток - это то, как подрядчикам платят за мою компанию.
19
1
Если вы продолжите и УДАЛИТЕ ветвь после слияния.
Просто позаботьтесь о
всех гиперссылках, URL-адресах ссылок ваших УДАЛЕННЫХ веток, будет РАЗРЫВ .
Ответы:
После объединения можно безопасно удалить ветку:
Кроме того, git предупредит вас (и откажется удалить ветку), если решит, что вы еще не полностью слили ее. Если вы принудительно удалите ветвь (с
git branch -D
), которая еще не полностью объединена, вам придется сделать несколько трюков, чтобы вернуть не слитые коммиты (см. Ниже).Есть несколько причин, чтобы держать ветвь, хотя. Например, если это ветвь функции, вы можете захотеть исправлять ошибки для этой функции, все еще находящейся внутри этой ветви.
Если вы также хотите удалить ветку на удаленном хосте, вы можете сделать:
Это принудительно удалит ветку на удаленном компьютере (однако это не повлияет на уже извлеченные репозитории и не помешает кому-либо с принудительным доступом повторно открыть / создать его).
git reflog
показывает недавно проверенные ревизии. Любая ветвь, которую вы проверили в недавней истории хранилища, также будет отображаться там. Помимо этого,git fsck
будет инструментом выбора в любом случае коммит-потери в git.источник
git checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
Я предпочитаю RENAME, а не DELETE
Все мои ветви названы в виде
Fix/fix-<somedescription>
илиFtr/ftr-<somedescription>
илиИспользуя башню , как мой мерзавец конца переднего, он аккуратно организует все
Ftr/
,Fix/
, иTest/
т.д. в папки.Как только я закончу с веткой, я переименую их в
Done/...-<description>
.Таким образом, они все еще там (что может быть полезно для предоставления истории), и я всегда могу вернуться назад, зная, что это было (функция, исправление, тестирование и т. Д.)
источник
Если вы продолжите и УДАЛИТЕ ветвь после слияния.
Просто позаботьтесь о
всех гиперссылках, URL-адресах ссылок ваших УДАЛЕННЫХ веток, будет РАЗРЫВ .
источник