GIT - 多个回购 - 列出所有 touched/dirty 文件(示例 Android 构建系统)

GIT - Multiple repos - List all touched/dirty files (example Android build system)

在典型的多回购场景中,如 Android 构建系统(其中内核是一个 git 回购,framework/base 是一个不同的 git 回购,bootable/bootlaoder/lk 等..)跟踪所有回购中所有更改的文件变得困难。

一个实际问题是,如果您的大部分更改分布在 1 或 2 个主要组件(如内核和 framwork/base),您可能会错过在不同的 repo 中提交小更改。

问题是:是否有一个我可以从根文件夹中触发的命令来完成这项工作
请注意,如果可能的话,我会尽量避免安装新的 software/packages - 任何使用 repo /git 的有效解决方案将不胜感激

是的,但您需要确保它与 "repo"

不冲突

您可以创建一个 git 项目来跟踪子模块,它是 android 构建目录的父级。

gitkraken 有一个很好的指南。

https://support.gitkraken.com/repositories/submodules

我用 gitkraken 来学习,因为我是视觉学习者

一旦你适应了,你可以离开父 git,并使用 repo 分支来跟踪你的项目,

回购分支,回购分支 回购信息、回购状态、回购显示

使用 repo forall 找到解决方案:-

zhossain@zhossain-linux:/local/mnt/workspace/LE.UM.0.0_2_13$ repo forall -pc "git diff --name-only"

project bootable/bootloader/lk/
target/msm8909/init.c

project frameworks/
av/media/mtp/MtpMain.cpp

project kernel/msm-3.18/
arch/arm/boot/dts/qcom/apq8017-no-pmi-wcd-rome-cdp.dts
arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi
arch/arm64/configs/msm8937_defconfig
zhossain@zhossain-linux:/local/mnt/workspace/LE.UM.0.0_2_13$