找到目录下所有一级子目录的活动git分支

DJ_*_*y_K 1 git gitlab

基于评论的更新问题:
项目 P,由子模块/迷你项目 A、B、C、D、E 组成。

请注意,A、B、C、D、E 是包含自己项目的目录,例如 A:Web,B:分析 C:Devops D:does_somethings E:Extra_features 等等。换句话说,每个 AE 都是它自己的存储库。

A 可以有由 user1 创建或检出的 b1,b2,b3 分支。
B 可以有 x1,x2,x3 分支,同样由 user1 执行。等等。
所以每个子文件夹 A、B、C、D、E 可以有多个未合并/合并的分支。

我的问题是,是否有一个命令会自动告诉我哪个分支在 P.

现在我正在cd进入每个子文件夹,然后输入 'git branch'。
所以如果我有 10 个子文件夹,我必须 cd 进入它们 10 次,然后再执行 git branch 10 次。

我查了一下:https : //stackoverflow.com/a/2421063/4590025

git log --graph --pretty=oneline --abbrev-commit

但这不是我要找的。

我正在寻找类似鸟瞰图的东西。

tor*_*rek 7

Git 一次只能在一个存储库上工作。

存储库包括对象和参考数据库和其他文件的如描述的文档。普通(非裸)存储库只有一个工作树,您可以在其中完成工作。

工作树可以包含子目录,但这些只是工作树中的目录。

工作树还可以包含作为子目录的子模块。这些本身就是 Git 存储库,但被包含的超级项目(更高级别的 Git 存储库)引用。如果您正在使用子模块,则有用于处理每个子模块的 Git 命令(例如,git submodule foreach)。本质上,这些在子存储库中运行子命令。 有关git submodule详细信息,请参阅文档。 这只是自动化了我将在下一段中提出的建议。如果是git submodule foreach自己使用,还是要自己写命令。

否则,例如,您有一个包含N 个子目录的顶级目录,每个子目录都是一个独立的存储库,您必须在每个子目录中运行N 个单独的git命令来检查独立的存储库。没有 Git 命令可以做到这一点。不过,编写一个执行此操作的shell命令(带有循环)非常简单:

for i in */; do \
     (cd $i && echo -n "${i}: " && git rev-parse --abbrev-ref HEAD); \
done
Run Code Online (Sandbox Code Playgroud)

(这假设 BSD 或 Linux 兼容echo)。