【问题标题】:List specific git branches depending on a filter根据过滤器列出特定的 git 分支
【发布时间】:2020-01-14 07:20:15
【问题描述】:

我正在开发一个包含许多分支的大型存储库。其中大部分已经合并到master,其中一些正在等待合并。

我需要看看他们中的哪些人正在触及特定目录。

例如,在这个 repo 中有几个 API,比如 A、B、C 等。 我想看看这个 repo 的哪些分支正在尝试更改 A。这就是为什么我在上面提到了一个“特定目录”,但如果有更简单的方法来检查,它也是可以接受的。

我不确定哪种方式更方便?选择开发脚本还是有任何 git 本机命令?

【问题讨论】:

    标签: bash git shell branch git-bash


    【解决方案1】:

    (这不是一个完整的答案。只是想在对话中加入一些元素。)

    对于给定的分支,使用类似的东西会很简单

    git rev-list --count <referenceBranch>..<featureBranch> -- path/to/directory/*
    

    仅当分支自上次引用状态以来已触及给定目录时才会输出正值。


    现在要遍历分支并执行上述测试,我首先想到的是for-each-ref,顾名思义,它循环遍历给定 refset 中的每个 ref(这里是 refs/heads),但我没有但看看如何使这些工作一起工作。可能只是 bash 中的一个循环?

    确实很有趣的问题。

    【讨论】:

    • 谢谢!这对我来说确实是一个很大的进步,并且完全可以理解您的想法,但我不确定是否可以让它们也一起工作:)
    • 谢谢,我用这个 sn-p 创建了一个 bash 脚本,它只在给定的有变化的 monorepo 目录中运行任务(如构建)。
    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2018-08-08
    • 2019-09-20
    • 1970-01-01
    • 2012-07-04
    • 2016-01-06
    • 2015-03-26
    相关资源
    最近更新 更多