什么是git命令列出文件夹差异

时间:2018-12-02 11:43:44

标签: git powershell

是否有一个git命令,将仅列出2个分支之间不同的文件夹。我必须创建一个Powershell脚本来检测哪些根文件夹已更改,以确定要运行的VSTS Build。所以我将重新表述这个问题:

我需要能够运行

这样的编程命令
git diff branchA..branchB | some-parser-that-outputs-a-list-of-root-folders

结果应与

相似
.\codebase1
.\codebase3
.\codebase5

1 个答案:

答案 0 :(得分:0)

Git对此没有按钮。我不了解powershell,所以我将给出一个简短的答案。要逐行(非递归)列出树,请git ls-tree。要仅选择文件夹,请从ls-tree输出grep ^04中进行选择。要比较那些,就比较它们。在Linux上类似

diff -u0 \
        <(git ls-tree branchA | grep ^04) \
        <(git ls-tree branchB | grep ^04)

适当地修剪以去除不需要的细节,但是正如我记得Windows在进程替换方面遇到了麻烦,因此除非Powershell有更好的方法,否则您将需要通过临时文件运行它。