2

我们在办公室使用监视器来显示有关 git 存储库中所有功能分支的信息。这样做的原因之一是我们知道功能分支何时“过时”(即它们的所有提交都已合并到master)。我们用:

git log --pretty=format:'%cd %s' --no-merges --abbrev-commit -n 1 --date=short master..origin/<branch>

最近,我们一直在尝试通过在将功能合并回master时压缩提交来保持更清晰的历史记录。缺点是我们当前识别“过时”分支的方法不再有效。

是否有一个 git 命令可以用来确定是否可以安全删除分支?

4

1 回答 1

0

以下仅适用于尚未被压扁的分支,因此不适用于您的情况。在某些情况下它可能仍然有用。

好吧,你总是可以使用git branch -d它自己:

git checkout master
git branch -d <branch>

-d标志拒绝删除尚未合并到的分支HEAD,在本例中为master. 实际上,我将它用作cleanup-branches别名,它只是删除了我的存储库中已经在我们的生产代码库中的任何功能分支:

git config --global alias.cleanup-branches \
    '!git branch | grep -v "\*" | awk "{ print $1 }" | xargs git branch -d'

我想出于您的目的,您可以在规范存储库上执行此命令。剩下的任何分支都处于活动状态并正在开发中。

于 2012-08-29T13:04:51.903 回答