git - 如何在git中查找空分支和标签

标签 git git-svn

我已经迁移了一个包含数百个分支和标签的大型 svn 存储库,将它们分成多个存储库,现在我正在检查这些存储库中是否有任何空*分支/标签应该在推送之前删除实时迁移。

有没有比去每个存储库并检查每个分支更快的方法来找到它?


*就此问题而言,“空分支”或“空标签”是指指向不包含任何文件的提交的分支或标签。

最佳答案

运行 git ls-tree <branch/tag> | wc -l对于使用您选择的编程语言的每个分支和标记,并检查 0 .你得到一个分支列表 git branch和带有 git tag 的标签列表.

这是一个使用 bash 的分支的简单示例:

#!/bin/bash

for branch in $(git branch | cut -c 3-)
do
  if [ $(git ls-tree $branch | wc -m) -eq 0 ]
  then
    echo "branch $branch is empty"
  fi
done

关于git - 如何在git中查找空分支和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12686027/

相关文章:

git - 如何撤消分支推送到 master

git - 我需要 Git 才能在 JetBrains IntelliJ IDEA 中使用 Github 吗?

git - 对在 git 中创建嵌套分支感到困惑

git - 使 `git svn find-rev` 搜索整个存储库

svn - 尝试通过 git 克隆 SVN 存储库时出现奇怪的错误

git - 如何欺骗 git-svn 来识别用 svn 进行的 merge ?

git - 'git remote add' 是否只为同一个存储库创建别名?

Gitlab管道+docker : (7) Failed to connect to localhost port 9000: Connection refuse

git - 如何为 GitHub 中的孤立提交分配标签?

git - git 上的每个目录权限