it-swarm.com.de

git erkennt mich von der befehlszeile aber nicht von cron

Wenn ich das mache:

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

Ich bekomme richtig:

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

Aber wenn ich die gleiche Zeile in die Crontab meines Kontos einfüge, sehe ich in der Logdatei:

*** 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 '[email protected]')

Ich legte "whoami" in die Crontab und bekam die gleiche Antwort wie draußen ("erelsgl").

Ich habe auch versucht, die empfohlenen "git config --global" -Befehle in die crontab einzufügen (ich habe sie bereits erfolgreich außerhalb der crontab ausgeführt), aber das hat nicht geholfen.

Was soll ich tun, um von Crontab zu verpflichten?

4

Versuchen Sie statt --global--system

Sudo git config --system user.email "[email protected]"
Sudo git config --system user.name "Your Name"
1
jswetzen

git muss user.email und user.name in einer seiner Konfigurationsdateien oder in Umgebungsvariablen finden. Sie haben mehr Optionen, um git diese Werte zu erhalten. Obviusly Git verwendet einige der Konfigurationsdateien nicht, wenn es von Crontab aus aufgerufen wird.

Ich würde Ihnen empfehlen, zwischen zwei Optionen zu wählen:

1. Fügen Sie user.email und user.name mit Befehlen in die Konfiguration des Repository ein

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

Sie sollten sich dabei im Repository befinden. Auf diese Weise werden in der Repository-Konfigurationsdatei .git/config die Werte festgelegt, und das Commit sollte von crontab aus funktionieren. Sie können mit überprüfen

cat .git/config

2. Setzen Sie die Umgebungsvariablen, damit git die fehlenden Werte erhält. In diesem Fall würde ich die Befehle wie folgt ausführen

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

Ich denke, die Variablen GIT_AUTHOR_NAME und GIT_AUTHOR_EMAIL sollten auch funktionieren.

Ich habe diese Informationen auf den folgenden Seiten gefunden:

1
nobody