Вы можете удалить ветку, но сначала пометьте ее, чтобы ее история не исчезла. Таким образом, ветвь не отображается в списке веток, что должно удерживать людей от работы над ней, но работа не будет стерта навсегда (даже после запуска сборки мусора). Например, если у меня есть ветка, которая стала неактуальной, но я не готов удалить ее навсегда, я помечаю ее как «архив / < имя-ветки >».
В то время как в master
другой ветке:
git tag archive/foo foo
git branch -D foo
Это создает тег с именем archive/foo
из foo
ветки перед удалением foo
. Вы также можете добавить к тегу сообщение, в котором объясняется, что находится в ветке, почему он существует, почему сейчас тупик и т. Д.
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
Возможность записывать, почему ветка устарела, возможно, является преимуществом тегирования по сравнению с перемещением ветвей в альтернативное пространство имен.
Если вам когда-нибудь понадобится воскресить ветку, которая была заархивирована таким образом, это очень просто:
git branch foo archive/foo
git tag -d archive/foo # Optional
Теперь ветка вернулась, как будто никогда не удалялась.
--tags
параметр togit push
), а затем удалив удаленную ветку (используя:<branch-to-delete>
refspec при нажатии). Например:git tag archive/foo foo; git branch -D foo; git push --tags origin :foo
Ветви Git хранятся как ссылки на ревизию. Если вы удалите ветку, ссылка будет удалена; если ничто иное не ссылается на эту ревизию, она в конечном итоге будет обработана сборщиком мусора. Кроме того, если вы удалите ветку, она исчезнет (из вашего репозитория). Если вы хотите пометить ветку как устаревшую, но сохранить ее для дальнейшего использования, вы можете переместить ветку в подкаталог:
В качестве альтернативы вы можете создать отдельный репозиторий для устаревших веток, перетащить их, а затем удалить из оригинала. В любом случае вы собираетесь повлиять на всех пользователей, которые следят за ветками - содержимое их репозитория не изменится (и не изменится ни одно из имен их веток), но если они попытаются выполнить повторную попытку, они будут должны изменить свою цель в своей конфигурации.
источник
git branch -D <branchName>
удалит вашу ветку из репозитория. Вы больше не сможете его видеть или перемещаться. Также вы потеряете все изменения файлов, сделанные в этой ветке.https://git-scm.com/docs/git-branch
источник
По нему нельзя будет перемещаться через ветку git, и пока не будет выполнена сборка мусора, он не будет утерян из репозитория.
Если вы хотите пометить ветку, о которой идет речь, как тупиковую, просто сделайте это (git может не делать этого за вас, но вы определенно можете)!
Обозначение его (любым способом) как исторического справочника работает.
источник