git - 列出文件夹差异的 git 命令是什么
问题描述
是否有一个 git 命令只列出两个分支之间不同的文件夹。我必须创建一个 Powershell 脚本来检测哪些根文件夹已更改以确定要运行的 VSTS 构建。所以我将重新表述这个问题:
我需要能够运行像这样的编程命令
git diff branchA..branchB | some-parser-that-outputs-a-list-of-root-folders
结果应该看起来像
.\codebase1
.\codebase3
.\codebase5
解决方案
Git 没有这个按钮。我不知道powershell,所以我会给出一个bash答案。逐个列出树(非递归)git ls-tree
,. 要从 ls-tree 输出中仅选择文件夹,grep ^04
. 要区分这些,区分它们。在 Linux 上它会像
diff -u0 \
<(git ls-tree branchA | grep ^04) \
<(git ls-tree branchB | grep ^04)
适当地删除你不想要的细节,但我记得 Windows 在进程替换方面存在问题,所以你需要通过临时文件运行它,除非 powershell 有更好的方法。
推荐阅读
- flutter - 类型为 NavigationService 的对象/工厂未在 GetIt 中注册
- python - 使用 txt 文件进行多项选择题
- ms-word - Word.CustomXmlPart 和 Office.CustomXmlParts 之间的区别
- c# - 根据条件获取特定的列表视图行
- vue.js - 如何按特定目录导入css
- php - 如何注册默认登录用户?
- java - JpaRepository 在保存到数据库时跳过了一些行
- django - 如何优化对反向ForeignKey的访问?
- keycloak - 用户尝试使用现有电子邮件注册时出现 Keycloak 内部服务器错误
- mysql - 使用乐观锁定更新 Sequelize 中的模型