Ветку в Git удаление


в Git, что означает" удаление " ветви?

он исчезнет из репозитория? Или он все еще будет судоходным до via git branch?

4 76

4 ответа:

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

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

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

ветви 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

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

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

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

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

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

маркировка его (в любом случае вы предпочитаете) в качестве исторических справочных работ.