2016-03-02 3 views
14

Когда я знаю, что больше не буду использовать ветку, можно ли ее закрыть или заблокировать? На самом деле я хотел бы закрыть ветку, но я не думаю, что можно закрыть ветку с GIT. как насчет удаления. Что происходит с моей историей, когда я удаляю ветку?Как закрыть ветку в git

+0

@FarhadFaghihi принятый означает, что искатель считал его наиболее полезным ответом на него или нее, а не на то, что он наиболее хорошо принят. –

ответ

18

Обновлено Ответ

Как @user3159253 указано в комментариях этого ответа:

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


Вы можете пометить кончик ветви путем архивирования, а затем удалить ветвь.

git tag archive/<branchname> <branchname> 
git branch -d <branchname> 
git checkout master 

Филиал будет удален, и может быть получен позже, проверяя тег, и воссоздавать ветку.

git checkout archive/<branchname> 
git checkout -b new_branch_name 

Или еще проще:

git checkout -b new_branch_name archive/<branchname> 
+0

Почему не 'git checkout -b new_branch_name archive/'? – PetSerAl

+0

это тоже имеет смысл. –

+1

Я бы добавил объяснение, что git garbage - собирает коммиты, на которые прямо или косвенно не ссылаются именованная ссылка (ветвь, тег и т. Д.). Вот почему важно оставить ссылку на замороженную ветку. – user3159253

1

вы можете обратиться к git finding unmerged branches, чтобы найти те отрасли, которые были объединены или нет.

Если ветка была объединена с другой веткой, ее можно удалить, используя команду follwing.

git branch -D branch_name

+2

Почему голос? Этот ответ неверен? Небезопасно ли удалять ветку, которая была объединена в другую ветку? Зачем? – Barzee

0

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

Для получения информации см. How do I delete a Git branch both locally and remotely?.