git提交可以';在cron作业中找不到正在运行的(全局)配置

git提交可以';在cron作业中找不到正在运行的(全局)配置,git,cron,git-commit,Git,Cron,Git Commit,我想使用一个cron作业来提交一些文件更改,该作业调用根crontab中具有以下行的脚本 0 * * * * cd /files/ && ./backup.sh >/tmp/cronlog 2>/tmp/cronerror 脚本如下所示: #!/usr/bin/env bash … prepare the files for the backup … echo "commit changes …" git add -u git commit -m "backup

我想使用一个cron作业来提交一些文件更改,该作业调用根crontab中具有以下行的脚本

0 * * * * cd /files/ && ./backup.sh >/tmp/cronlog 2>/tmp/cronerror
脚本如下所示:

#!/usr/bin/env bash

… prepare the files for the backup …

echo "commit changes …"
git add -u
git commit -m "backup"
git push
在cron设置之前,我还为root用户设置了
user.email
user.name
,并检查了如果从命令行调用if,脚本是否运行

但是在
/tmp/cronerror
中,我收到了以下众所周知的消息

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
…
我也尝试过在脚本中设置
HOME=/root
,但这并没有带来什么不同


在cron作业中运行时,有没有办法告诉git命令在哪里可以找到全局git配置?

我的解决方案是使用
git config…
而不使用
--global
选项,该选项将配置存储在当前存储库中,git可以在其中找到它。

有趣。您是否使用了
HOME=/root;导出主页
导出主页=/root
?(或者将
HOME=/root
放在每个git命令前面,但这是很长的一段路。)我只是在
echo
前面的一行写了
HOME=/root
,我应该使用
export
?我现在还添加了一个
echo$HOME
,它已经设置为
/root
。甚至在每个git命令前面加上
HOME=/root
,也不会改变这种情况。好吧,这并不是说
$HOME
错了,而是别的原因。还有什么,我不知道。有趣的是,将配置存储在本地存储库中是可行的。