我在名为'git.run'的可执行文件中有以下命令:
git add .
curtime=`date`
git commit -m "Automatic Backup @ $curtime"
git push origin master
上面的脚本将所有内容添加到名为.git的已制作(本地)存储库中 然后使用当前日期/时间标记git commit以进行审计 最后,本地存储库被推送到bitbucket中的远程存储库
当我运行以下cron作业时:
* * * * * /var/www/ && ./git.run >> /var/www/jobs.log 2>&1
以下输出将写入jobs.log ...
Please make sure you have the correct access rights and the repository exists.
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
但是,如果我手动运行
./git.run
来自/ var / www目录的;整个脚本成功运行,存储库被推送到bitbucket并进行更新。 Cron工作得很好,可执行文件正在运行并返回一个git错误,加上可执行文件在手动运行之后声音/罚款很好,这会成功推送到远程存储库。
出于测试目的,我也尝试过:
* * * * * /var/www/git.run >> /var/www/jobs.log 2>&1
然后返回已经描述的相同错误。
所有权和权限如下......
.git (repository) drwsrwsrwx for ubuntu user
git.run (script) -rwxrwxrwx for ubuntu user
有人可以告诉我哪里出了问题!?! 谢谢你的时间!
答案 0 :(得分:0)
如果要从任何文件夹运行该脚本,可以使用以下命令修改git调用(在脚本git.run
中):
git --work-tree=/var/www --git-dir=/var/www/.git xxx
(xxx
为commit
或status
或任何其他git命令)