git me reconhece da linha de comando, mas não do cron

4

Quando faço isso:

cd /home/erelsgl/git/erel-sites;  git commit -m "test"

Eu obtenho corretamente:

On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

Mas, quando coloco a mesma linha no crontab da minha conta, vejo no arquivo de log:

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  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')

Eu coloquei "whoami" no crontab e recebi a mesma resposta do lado de fora ("erelsgl").

Eu também tentei colocar os comandos recomendados "git config --global" dentro do crontab (eu já os executei com sucesso fora do crontab), mas isso não ajudou.

O que devo fazer para me comprometer com o crontab?

    
por Erel Segal-Halevi 16.08.2016 / 09:28

2 respostas

1

git precisa encontrar user.email e user.name em um de seus arquivos de configuração ou em variáveis de ambiente. Você tem mais opções para fazer o git obter esses valores. Obviusly git não usa alguns dos arquivos de configuração quando chamado do crontab.

Recomendamos que você escolha duas opções:

1. Coloque user.email e user.name na configuração do repositório com comandos

git config user.email "[email protected]"
git config user.name "Your Name"

Você deve estar no repositório ao fazer isso. Dessa forma, o arquivo de configuração do repositório .git/config terá os valores definidos e o commit deverá funcionar a partir do crontab. Você pode verificar com

cat .git/config

2. Defina as variáveis de ambiente para ajudar o git a obter os valores ausentes. Nesse caso eu iria executar os comandos como este

cd /home/erelsgl/git/erel-sites; GIT_COMMITTER_NAME="Your Name" GIT_COMMITTER_EMAIL="[email protected]" git commit -m "test"

Acho que as variáveis GIT_AUTHOR_NAME e GIT_AUTHOR_EMAIL também devem funcionar.

Encontrei esta informação nas seguintes páginas:

por nobody 19.08.2016 / 17:40
1

Em vez de --global , tente --system

sudo git config --system user.email "[email protected]"
sudo git config --system user.name "Your Name"
    
por jswetzen 19.08.2016 / 16:54

Tags