DDEV: Git User und E-Mail setzen | 2026
von Andreas van Hulst
DDEV: Git User und E-Mail setzen, damit Commits nicht dem Container gehören
Ein Commit aus dem DDEV-Container heraus, und im Log steht ein Autor, der nicht ich bin. Passiert regelmäßig, wenn man Git im Container statt auf dem Host benutzt – etwa weil ein Deployment-Skript oder ein Composer-Plugin dort committet. Der Grund: Der Container kennt Ihre globale ~/.gitconfig vom Host nicht. Git greift dann auf den Container-Nutzer plus Container-Hostname zurück (andreas@web.(none)), bricht mit „Author identity unknown" ab, oder es landet – je nach Setup und DDEV-Version – ein generischer Platzhalter im Log.
Umgebung: DDEV v1.25, macOS, Stand August 2026.
Wie übernehme ich meine Git-Identität dauerhaft in den Container?
Über homeadditions. DDEV kopiert den Inhalt dieses Verzeichnisses bei jedem ddev start in das Home-Verzeichnis im Web-Container. Ein Symlink auf die Host-.gitconfig reicht – global, also für alle Projekte:
DDEV_DIR="$(ddev version -j | docker run -i --rm ddev/ddev-utilities jq -r ".raw.\"global-ddev-dir\" | select (.!=null) // \"$HOME/.ddev\"" 2>/dev/null)"
mkdir -p "$DDEV_DIR/homeadditions"
ln -s "$HOME/.gitconfig" "$DDEV_DIR/homeadditions/.gitconfig"
Danach neu starten und prüfen:
ddev restart
ddev exec git config --get user.name
ddev exec git config --get user.email
Wichtig ist der Symlink statt einer Kopie: Ändern Sie Name oder E-Mail auf dem Host, ist der Container beim nächsten ddev start automatisch aktuell.
Wie setze ich eine abweichende Identität pro Projekt?
Über web_environment in der Projektkonfiguration. Git wertet diese Variablen aus, bevor es in die .gitconfig schaut – praktisch für Kundenprojekte, in denen Sie mit einer Projekt-E-Mail committen:
# .ddev/config.local.yaml
web_environment:
- GIT_AUTHOR_NAME=Ihr Name
- GIT_AUTHOR_EMAIL=name@example.com
- GIT_COMMITTER_NAME=Ihr Name
- GIT_COMMITTER_EMAIL=name@example.com
config.local.yaml statt config.yaml, wenn die Adresse nicht ins Repository soll – prüfen Sie, dass die Datei in .ddev/.gitignore steht.
Warum nicht einfach git config --global im Container?
Weil es nicht hält. Das Home-Verzeichnis im Web-Container wird bei ddev restart neu aufgebaut, Ihre Einstellung ist danach weg. Das ist der häufigste Grund, warum die Identität „immer wieder zurückspringt".
Mein Tipp aus der Praxis: Einmal global per homeadditions einrichten und vergessen. Die Projektvariante brauche ich in vielleicht einem von zehn Projekten.
Quelle: DDEV-Doku: In-Container Home Directory and Shell Configuration
Einen Kommentar schreiben