我正在尝试编写一个脚本来使我的批量git协作更容易,一次推送/拉/或提交多个git项目。
我在多个网站上工作,我想立即为所有网站提取所有当前更改。
这就是我所拥有的。
#!/bin/bash -e
REPOS=(
/Users/me/repo1
/Users/me/repo2
/Users/me/repo3
)
echo push, pull or commit?
read input
if [$input -eq "commit"]
then
for i in “${REPOS[@]}”
do
cd $i
git add . -A
git commit -m "auto commit backup point"
echo "Moving to Next REPO...
"
sleep 2
done
else
for i in “${REPOS[@]}”
do
cd $i
git $input
echo "Moving to Next REPO...
"
sleep 2
done
fi
现在,当脚本提示我输入时,推或拉工作正常(有点),脚本会遍历所有站点并相应地拉或推。
但是当我回复“commit
”时,脚本会遍历每个仓库,但是提交工作不正常。提交消息提示在vi中打开,这不是首选,并且提交不会放置。如果我导航到任何存储库,仍然会进行分阶段更改。
任何输入都将不胜感激。
答案 0 :(得分:1)
if [$input -eq "commit"]
缺少空间。将其重写为if [ $input -eq "commit" ]
。否则它进入else
条件并执行git $input
,其中input = commit。
哦,是的,-eq
是整数,应该是if [ $input = "commit" ]
。