Ich versuche, Git als Deployment-Tool zu verwenden. Wenn also ein Push auf den Produktionszweig erfolgt ist, möchte ich den Remote-Server entsprechend aktualisieren. Wenn ich jedoch den zweiten Befehl (den Pull-Befehl) ausführe, kommt eine Fehlermeldung zurück, die besagt Operation must be run in a work tree.
Kann mir jemand den richtigen Weg weisen?
Hier ist ein Teil des Bash-Skripts.
echo -e "Thank you for pushing your changes to ${project}. \nHold on while I update the required directories..."
GIT_WORK_TREE=/home/www/${project} git checkout -f
echo "Local directory updated!"
for ref in $@; do
echo $ref
if [ "$ref" = "refs/heads/production" ]; then
# Before we could set the GIT directory strictly from the local environment
# but the case might not be the same remotely. Need absolute paths.
ssh git@myserver GIT_DIR=/home/www/${project}/.git GIT_WORK_TREE=/home/www/${project} git checkout -f production
ssh git@myserver.com GIT_DIR=/home/www/${project}/.git GIT_WORK_TREE=/home/www/${project} git pull -f production
echo "Production push completed"
fi
done
EDIT:
Hier ist der eingefügte Fehler:
remote: fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.