看起来你想删除 2011_Hotfix
分支,但不想丢失其历史记录。我将先讨论删除,再讨论历史记录。
通常的 git
分支删除方法已经在上面描述过了,并且它们按预期工作。 git
没有一个一两个单词的命令,可以表示“嘿 git
,同时删除本地和远程分支。” 但是可以通过 shell 脚本来模仿这种行为。例如,参考 Zach Holman 的 shell 脚本 '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
的提交历史记录中。简而言之,您不会因为简单合并而失去历史记录。
我还有一个词要补充,可能超出了你的问题范围,但仍然相关。假设在
2011_Hotfix
上有20个微小的“工作中”提交,但是你只想将一个完整的提交添加到
master
的历史记录中。如何将这20个小提交合并为一个大提交?幸运的是,
git
允许您通过使用
git-rebase
将多个提交合并为一个提交。我不会在这里解释它的工作原理;但是,如果您感兴趣,
关于git-rebase
的文档非常好。请注意,
git rebase
会重写历史记录,因此应谨慎使用,特别是如果您是新手。最后,你的
2011_Hotfix
场景涉及开发团队,而不是单独的开发人员。如果项目团队成员使用
git rebase
,则明确指导团队在使用
git rebase
时应该具有明确的准则,以避免团队中的某个牛仔开发人员无意中损坏项目的
git
历史记录。