Когда я делаю это:
cd /home/erelsgl/git/erel-sites; git commit -m "test"
Я добираюсь правильно:
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Но, когда я поместил ту же строку в crontab моей учетной записи, я вижу в файле журнала:
*** 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.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'erelsgl@erelsgl-computer')
Я поместил "whoami" в crontab и получил тот же ответ как снаружи ("erelsgl").
Я также пытался поместить рекомендуемую "конфигурацию мерзавца - глобальные" команды в crontab (я уже выполнил их успешно вне crontab), но это не помогло.
Что я должен сделать для фиксации от crontab?
мерзавец должен найти user.email
и user.name
в одном из его файлов конфигурации или в переменных среды. У Вас есть больше опций заставить мерзавца получить эти значения. Мерзавец Obviusly не использует некоторые файлы конфигурации при вызове от crontab.
я рекомендовал бы Вам выбрать из двух опций:
1. Помещенный user.email
и user.name
в конфигурацию репозитория с командами
git config user.email "you@example.com"
git config user.name "Your Name"
необходимо быть в репозитории при выполнении этого. Таким образом файлу конфигурации репозитория .git/config
установят значения, и фиксация должна работать от crontab. Можно свериться
cat .git/config
2. Установите переменные среды, чтобы помочь мерзавцу получить отсутствующие значения. В этом случае я выполнил бы команды как это
cd /home/erelsgl/git/erel-sites; GIT_COMMITTER_NAME="Your Name" GIT_COMMITTER_EMAIL="you@example.com" git commit -m "test"
, я думаю переменные, GIT_AUTHOR_NAME и GIT_AUTHOR_EMAIL должны также работать.
я нашел эту информацию на следующих страницах:
Вместо --global
, попробуйте --system
sudo git config --system user.email "you@example.com"
sudo git config --system user.name "Your Name"