如何在子模块中搜索 Git 提交?
How to search for a Git commit in submodules?
我有一个包含多个子模块的存储库。我有一个提交的哈希,但不知道它属于哪个子模块,我怎么能找到它的确切子模块?
运行 git show
在所有子模块中递归;隐藏错误信息,忽略错误;找到哈希时报告子模块(git show
没有 return 错误):
git submodule foreach -q --recursive 'git show -q $hash 2>/dev/null && echo $name || :'
参见docs。
git submodule status
将为您提供每个子模块的当前签出提交哈希 ID 的列表。您可以解析它并找出与提交哈希对应的子模块的名称:
$ commit_id="14f4e19f1c"
$ git submodule status | awk -v commit_id="$commit_id" '[=10=] ~ commit_id {print }'
(假设您正在使用该子模块的最新提交哈希)
我有一个包含多个子模块的存储库。我有一个提交的哈希,但不知道它属于哪个子模块,我怎么能找到它的确切子模块?
运行 git show
在所有子模块中递归;隐藏错误信息,忽略错误;找到哈希时报告子模块(git show
没有 return 错误):
git submodule foreach -q --recursive 'git show -q $hash 2>/dev/null && echo $name || :'
参见docs。
git submodule status
将为您提供每个子模块的当前签出提交哈希 ID 的列表。您可以解析它并找出与提交哈希对应的子模块的名称:
$ commit_id="14f4e19f1c"
$ git submodule status | awk -v commit_id="$commit_id" '[=10=] ~ commit_id {print }'
(假设您正在使用该子模块的最新提交哈希)