Кажется, вы хотите удалить 2011_Hotfix
ветку, не потеряв ее историю. Я буду обсуждать удаление первого и историю второго.
Обычные git
методы удаления веток уже были описаны выше, и они работают как положено. git
не имеет команды из одного или двух слов, которая означает: «Эй git
, удалите как локальную, так и удаленную ветку». Но это поведение можно имитировать с помощью сценария оболочки. Например, возьмите сценарий оболочки Зака Холмана «git-nuke» . Это очень просто:
#!/bin/sh
git branch -D $1
git push origin :$1
Поместите это в исполняемый файл (например, git-nuke
) в одном из ваших $PATH
каталогов. Если вы не в 2011_Hotfix
ветке, вы просто работаете git-nuke 2011_Hotfix
, удалит как локальную, так и удаленную ветки. Это намного быстрее и проще - хотя, возможно, более опасно - чем стандартные git
команды.
Ваша забота о сохранении истории хороша. В этом случае вам не нужно беспокоиться. После слияния 2011_Hotfix
на master
все коммиты из 2011_Hotfix
будут добавлены к master
«s история коммитов. Короче говоря, вы не потеряете историю от простого слияния.
Я хочу добавить еще одно слово, которое, возможно, выходит за рамки вашего вопроса, но, тем не менее, уместно. Давайте представим, что есть 20 крошечных «незавершенных» коммитов 2011_Hotfix
; однако вы хотите, 2011_Hotfix
чтобы в master
историю добавлялся только один полный коммит . Как объединить все 20 маленьких коммитов в один большой коммит? К счастью, git
позволяет объединить несколько коммитов в один коммит с помощью git-rebase
. Я не буду объяснять здесь, как это работает; хотя, если вам интересно, документация наgit-rebase
отлично. Обратите внимание, что git rebase
переписывает историю, поэтому она должна использоваться разумно, особенно если вы новичок в этом. Наконец, ваш 2011_Hotfix
сценарий о команде разработчиков, а не об одиночном. Если члены команды проекта используютgit rebase
Для команды целесообразно иметь четкие руководящие указания по использованию git rebase
, чтобы какой-нибудь ковбойский разработчик в команде невольно не повредил git
историю проекта .