如何使用 shell 脚本从 git repo 打印最新的提交 ID
Posted
技术标签:
【中文标题】如何使用 shell 脚本从 git repo 打印最新的提交 ID【英文标题】:How to print the latest commit ID from the git repo using shell script 【发布时间】:2019-09-15 13:21:22 【问题描述】:我在 linux 环境中有以下 shell 脚本,其中 arr 有 git repo 路径列表,当我尝试运行此脚本时,我通过第 3 行进入该路径,但我无法获得最新的提交 ID 并保存在变量中,我在此代码中缺少的内容以及如何在该变量“commit_ID”中获取该提交 ID。
for i in "$arr[@]"
do
cd $i
echo $i
commit_ID = git log -1
echo $commit_ID
done
【问题讨论】:
尝试将 commit_ID 行更改为commit_ID=git log -n1
。在 git 之前和 1 之后加上反引号。看看这是否有效。您可能还想在done
之前执行cd ..
以返回父目录。
而不是commit_ID=$( git log -n1 )
,= 周围没有空格。
它只是打印一个空行,当我尝试 commit_ID = git log -n1
关于 cd,我猜它应该是 cd -
,这样它就可以到达之前的任何路径(参数可能由 2 个目录组成......或绝对路径或什么不是)。
不要使用cd
。请改用commit_ID=$(git --git-dir=$i/.git log -n1)
。如果$i
是一个裸仓库,请不要附加/.git
。
【参考方案1】:
您可以instead use,而不是git log -n1
:
COMMIT_ID=$(git rev-parse --verify HEAD)
【讨论】:
以上是关于如何使用 shell 脚本从 git repo 打印最新的提交 ID的主要内容,如果未能解决你的问题,请参考以下文章