Удаление ответвления мерзавца

В Мерзавце, что означает "удаление" ответвления?

Это закончится из репозитория? Или это все еще будет пригодно для навигации к через git branch?

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

77
задан Sam 17 August 2014 в 14:25
поделиться

4 ответа

Вы можете удалить ветку, но сначала пометьте ее, чтобы ее история не исчезла. Таким образом, ветвь не отображается в списке ветвей, что, будем надеяться, должно удерживать людей от работы над ней, но работа не будет стерта навсегда (даже после запуска сборки мусора). Например, если у меня есть ветка, которая стала неактуальной, но я не готов удалить ее навсегда, я помечаю ее как «archive / < имя-ветки >».

На 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

Теперь ветка вернулась, как будто она никогда не удалялась.

154
ответ дан 24 November 2019 в 10:54
поделиться

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

$ git branch
* master
  testing_feature_one
  testing_feature_two
$ git branch -m testing_feature_one deprecated/testing_feature_one
$ git branch
  deprecated/testing_feature_one
* master
  testing_feature_two

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

2
ответ дан 24 November 2019 в 10:54
поделиться

git branch -D удалит вашу ветку из репозитория. Вы больше не сможете его видеть или перемещаться. Также вы потеряете все изменения файлов, сделанные в этой ветке.

https://git-scm.com/docs/git-branch

2
ответ дан 24 November 2019 в 10:54
поделиться

Он не будет доступен через ветку git и пока не будет произведена сборка мусора, он не будет потерян из репозитория.

Если вы хотите пометить данную ветку как тупиковую, то просто сделайте это (git может не сделать это за вас, но вы точно можете)!

Пометьте её (любым удобным для вас способом) как историческую справку.

0
ответ дан 24 November 2019 в 10:54
поделиться
Другие вопросы по тегам:

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