git - 如何检测文件是否是子模块的一部分,如果是,是哪个子模块?
问题描述
我编写了一些脚本,基本上用于git log
为工作区中的文件提取一些信息。这工作正常,但如果文件是子模块的一部分,它会失败。
正如我发现的那样,git log -- file
如果文件是子模块的一部分,则不返回任何内容并以 0 退出;但是,当我cd
进入子模块的目录时,git log
将按预期工作。
所以我的想法是检测给定文件是否是子模块的一部分,如果是:“哪个子模块? ”。我怎样才能得到这些信息?
更新
一旦新的子模块被提交,实际git log
输出子模块的数据。但是子模块中文件的日志信息仍然不同于命令的启动位置:git log
从主工作区启动时,它指的是子模块的提交,但从子模块目录运行时,它指的是子模块内部的提交。
所以这个问题仍然有效;-)
解决方案
推荐阅读
- filter - 配置 Rust 的 Warp 过滤器时遇到问题
- php - PHP 通知错误:尝试访问 bool 类型值的数组偏移量
- sql - 对 SQL Server 表数据进行计数和分组
- spring - Spring Security xsd 不允许 http-basic 标记上的领域属性
- python - 用“|”解析正则表达式 (或)在 python 中
- azure - 能否使用 Azure REST API 获取虚拟机规模集的公共 IP?
- c# - 如何获取所有驱动器目录C#
- matrix - 三.js,计算两个BufferGeometry位置状态之间的变换矩阵
- r - 使用 multidplyr 并行化 group_walk 操作
- apache-spark - 三角洲湖上的蜂巢桌