【问题标题】:find active git branch of all 1st level subdirectories under a directory查找目录下所有 1 级子目录的活动 git 分支
【发布时间】:2018-03-14 15:27:20
【问题描述】:

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

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

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

我的问题是,是否有一个命令会自动告诉我在 P 下的哪个存储库(仅 A、B、C、D、E 即仅第一级)上哪个分支处于活动状态。

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

我检查了这个:https://stackoverflow.com/a/2421063/4590025

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

但这不是我想要的。

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

【问题讨论】:

  • 为什么将每个文件夹都放在一个分支中?
  • 10 个人正在处理项目 P。每个文件夹都是不同的子项目。所以每个人都在自己的分支上工作。对于未合并的 MR,我会检查另一个分支并对其进行处理并重新提交 MR。所以我想鸟瞰一下我的笔记本电脑上有哪些分支 A、B、C、D 和 E。
  • 你说的是子模块吗?
  • 我明白了,那是一个完全不同的故事。我建议在您的问题中非常清楚地表明您正在谈论驻留在他们自己的存储库中的子项目,因为这会在很大程度上影响潜在答案的有用性。
  • 我不确定,但我认为您可以随意编辑自己的问题。如果您可以确定您是否真的按照@evolutionxbox 的建议使用子模块,它可能也会有所帮助。你可以在这里阅读它们:git-scm.com/book/en/v2/Git-Tools-Submodules

标签: git gitlab


【解决方案1】:

Git 一次只能在一个存储库上运行。

存储库由对象和参考数据库以及the documentation 中描述的附加文件组成。普通(非裸)存储库有一个工作树,您可以在其中进行工作。

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

工作树也可以包含子目录,子模块。这些本身就是 Git 存储库,但被包含的 superproject(更高级别的 Git 存储库)引用。如果您正在使用子模块,则有用于处理每个子模块的 Git 命令(例如,git submodule foreach)。本质上,这些运行子存储库内的子命令。 See the git submodule documentation for details. 这只是自动化了我将在下一段中提出的建议。如果你使用git submodule foreach本身,你仍然需要编写命令。

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

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

(这假定与 BSD 或 Linux 兼容 echo)。

【讨论】:

    【解决方案2】:

    让我们将子文件夹视为开发人员正在开发的一项功能。

    当团队遵循描述性分支命名策略时,更容易找到工作。

    示例: 分支名称“P/A/b1”告诉您在 P/A/b1 位置有正在进行的工作。

    【讨论】:

    • 对不起,如果我的术语令人困惑。 P 是完整的项目。它有文件夹 A、B、C、D 和 E,每个都是一个完整的迷你项目,换句话说,每个都是一个单独的存储库,人们可以向其中推送、拉取和创建 mr 的。因此,如果每个存储库都使用不同的分支,那么如何鸟瞰每个存储库 A、B、C、D、E 上哪个分支处于活动状态?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多