【发布时间】: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
。