最好的处理方法是什么;“未使用/未使用”;GIT中的分支?

最好的处理方法是什么;“未使用/未使用”;GIT中的分支?,git,Git,在我们的项目中,我们使用GIT作为SCM。作为usal,我们为新特性、复杂错误修复、下一版本等创建单独的分支。当(例如)一个新功能完全实现时,它们将合并到主功能中,主功能是我们的“下一个版本”分支(并在稍后的测试/部署期间合并到主干和实时)。因此,在一个新的特性分支合并到master之后,它就“死了”。此时,我删除了“死”分支,以保持分支列表小而清晰。但正如我在上次删除时注意到的,我这样做是以失去分支历史为代价的 我现在的问题是:处理“死”分支的最佳方法是什么?我想说的是,已经合并到master

在我们的项目中,我们使用GIT作为SCM。作为usal,我们为新特性、复杂错误修复、下一版本等创建单独的分支。当(例如)一个新功能完全实现时,它们将合并到主功能中,主功能是我们的“下一个版本”分支(并在稍后的测试/部署期间合并到主干和实时)。因此,在一个新的特性分支合并到master之后,它就“死了”。此时,我删除了“死”分支,以保持分支列表小而清晰。但正如我在上次删除时注意到的,我这样做是以失去分支历史为代价的

我现在的问题是:处理“死”分支的最佳方法是什么?

我想说的是,已经合并到master的分支,即

git branch --merged
可以而且应该使用安全删除

git branch -d <merged_branch>
git push --delete origin <merged_branch>

它们不能用
-d
删除,但必须用
-d
删除,因此很难出错。就我个人而言,我最终也会删除这些,但我等待的时间要长得多。

有时我喜欢复制一个分支,以便在合并到主分支之前挤压提交。这意味着主分支将有更少的提交,并且历史记录更简单

然后,我将删除压缩的分支并保留原始分支,以便在本地计算机上存储更详细的历史记录。在这一点上,我建议标记该分支,说明它不需要合并到master上(合并不会产生任何效果)

git tag-a s1-m“此分支被挤压到主机上”

Mercurial允许您将分支标记为死分支,以便它们不能合并到主分支。

正如我在问题中所写的,我正是这样做的,所以(只要没有更多的答案)我认为我的行为并不像我在两者之间所想的那样糟糕。但是请理解,我现在不接受你的回答。也许其他人有其他观点/论点/工作流程。但是非常感谢你!最后一个命令应为
git branch--no merged
(删除一个连字符)
git branch --no-merged
git tag -a s1 -m "this branch was squash into <squash commit> on master"