Andreas van Hulst

E-Commerce & Web Developer

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

Bitte addieren Sie 8 und 7.