我想从git submodule status <PATH>
子模块的SHA-1提交哈希值grep 。根据git submodule --help
:
状态[-缓存] [-递归] [-] [...]
显示子模块的状态。这将为每个子模块打印当前已检出提交的SHA-1,以及子模块路径和SHA-1的git describe输出。如果未初始化子模块,则每个SHA-1可能都带有-前缀;如果当前签出的子模块提交与包含的存储库的索引中找到的SHA-1不匹配,则+;如果子模块具有合并冲突,则前缀U。
所以结果看起来像这样:
f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)
描述中提到,每个散列都可能以a+
或a为前缀-
。我对这些标志不感兴趣,因此,无论它给我什么结果,我都希望获得不带前缀的40个字符的哈希。
例:
input: +f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)
desired output: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1
input: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)
desired output: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1
我已经尝试过类似的方法,awk '{print $1;}' | grep -e '[0-9a-f]\{40\}'
但是它似乎并没有删除前缀。有什么优雅的解决方案吗?
我想从
git submodule status <PATH>
子模块的SHA-1提交哈希值grep 。
为什么要经过旋转?只需直接问您想要什么:
git rev-parse :<PATH>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句