git log获取分支提交时间异常求助:仅master分支可用
问题原因与解决办法
你的报错是因为分支名包含特殊字符(括号()、逗号,),Shell会自动解析这些符号,导致Git无法接收到完整的分支名,从而识别失败。而master分支名无特殊字符,所以能正常执行。
以下是三种可行的解决方式:
1. 用引号包裹分支名
将包含特殊字符的分支名用双引号或单引号包裹,让Shell把它当作一个完整的参数传递给Git:
# 使用完整的refs路径 git log -n 1 --format="%ct" "refs/heads/updated/license-details(s)-devenv,combine" # 或者直接使用分支名(省略refs/heads/) git log -n 1 --format="%ct" "updated/license-details(s)-devenv,combine"
2. 直接使用远程分支引用
如果本地未拉取该分支,可以直接通过origin/分支名的方式访问远程分支,同样需要包裹引号:
git log -n 1 --format="%ct" "origin/updated/license-details(s)-devenv,combine"
3. 使用分支对应的哈希值
从git ls-remote --heads origin的输出中,每个分支都对应一个哈希值,直接使用哈希值可以避开特殊字符的问题:
# 对应updated/license-details-env,noncombine分支的哈希 git log -n 1 --format="%ct" 9c4f1a56f01297e15065fc11a8882bfb44654458
内容的提问来源于stack exchange,提问作者Sandhya S
相关产品推荐
相关产品推荐

