Skip to main content
Home
Schatzchaeschtli 2026

Main navigation

  • Home
User account menu
  • Log in

Breadcrumb

  1. Home

Git: Einrichten step by step

By PierreAdmin , 15 September 2026

Hier erkläre ich, wie man ein neues Git Repository einrichtet. Erst lokal und dann für per.net Projekte extern auf gitlab.

In einem separaten Post werden die wichtigsten Git-Kommandos erklärt.

Git einrichten

Git wird im Projektroot eingerichtet, eine Ebene über public. Damit werden auch die Verzeichnisse config/sync und --pernet-docs erfasst.

1. Vorhandenes Repository prüfen

### WICHTIG: Im Projektroot ausführen:

git rev-parse --show-toplevel
  • Wird der korrekte Projektroot angezeigt, existiert bereits ein Repository.
  • Erscheint not a git repository, mit Schritt 2 fortfahren.
  • Wird ein übergeordnetes Verzeichnis angezeigt, zuerst die Repository-Struktur klären.

2. Git initialisieren

Nur wenn noch kein Repository existiert:

git init -b main

-b main ist nicht nötig, da main in meinen settings bereits definiert ist. Ab git Version 3 wird main standarmässig gesetzt, früher war es master, deshalb zur Sicherheit -b main.
Meine globale Konfiguration kann mittels  git --no-pager config --global --list ausgegeben werden.

3. .gitignore erstellen

Im Projektroot die Datei .gitignore erstellen:

# macOS
.DS_Store

# VS Code
.vscode/

# Composer-Abhängigkeiten
/public/vendor/

# Drupal Core und Contrib
/public/web/core/
/public/web/modules/contrib/
/public/web/themes/contrib/

# Öffentliche Dateien
/public/web/sites/*/files/

# Private Dateien
/private/

# Logs
*.log

# Umgebungsspezifische Settings
/public/web/sites/default/settings.local.php
/public/web/sites/default/settings.stage.php
/public/web/sites/default/settings.live.php

# Frontend-Abhängigkeiten
/tools/frontend/node_modules/

Versioniert werden insbesondere:

- public/composer.json und public/composer.lock
- gemeinsame Settings und Development-Dateien
- eigene Themes und Module
- config/sync/
- --pernet-docs/
- .gitignore

DB-Dumps und Prüfkopien mit Zugangsdaten unter private/ aufbewahren und/oder ausdrücklich ausschliessen.

### Wichtig:
.gitignore schützt nur noch nicht versionierte Dateien. Bereits erfasste Dateien werden dadurch nicht aus Git entfernt.

4. Drupal-Konfiguration exportieren

Aus public (Merken: drushh und composer immer aus public)

drushh cex

Der Export muss im projektweiten config/sync liegen. Den Ordner vorher nicht löschen.

cex exportiert Konfiguration, beispielsweise Views und Blockplatzierungen. Es ersetzt kein Backup der Datenbank und hochgeladenen Dateien.

5. Änderungen prüfen und vormerken

Weiterhin aus public:

git status
git add -A
git --no-pager diff --cached --stat
git diff --cached

git add -A erfasst Änderungen im gesamten Repository, auch ausserhalb von public.

git --no-pager diff --cached --stat verstehe ich noch nicht. Ist mehr Kontrolle als wichtiges Utensil und diese Funktion ist wohl auch besser direkt im git-Baum von vscode. Denn geänderte Dateien werden dort bei Klick direkt in einem Diff vergleich nebeneinander angezeigt. Sehr praktisch. 

Prüfen, dass keine Passwörter, echten Hash-Salts oder vertraulichen Backups enthalten sind. Dateinamen und Statistik allein zeigen das nicht zuverlässig. Die ausführliche Diff-Anzeige mit q verlassen.
Hier kurz prüfen, dass settings.local.php, settings.stage.php, settings.live.php und in config/sync die Datei shield.settings.yml nicht die Passwörter enthält. Letzteres ist jetzt nicht superheikel, weil der Schutz vor allem gegen Suchbots schützen soll, aber trotzdem nicht in git erscheinen soll. Die PW werden in den Local Settings definiert.

6. Ersten Commit erstellen

git commit -m "Drupal-Basisinstallation mit Settings-Struktur und Konfiguration gesichert"
git status

Nach dem Commit sollte working tree clean erscheinen.

7. GitLab verbinden

Diesem separaten Artikel folgen.

8. Commits auflisten

git log --oneline

Nur die letzten 10
git log --oneline -10

Mit Datum
git log -10 --date=short --pretty=format:"%h %ad %s"

 

  • git
  • gitlab
Git

Tag Suche

Categories (Taxonomie-Menu)

  • Drupal
    • Module
    • Theming
    • Views
  • Webentwicklung
    • Composer
    • CSS/SCSS
    • Deployment
    • Drush
    • Git
    • HTML
    • JavaScript
    • PHP
    • SSH
    • SVG
    • VS Code
  • Datenbank
    • mySQL
  • Server
    • Apache
    • DNS
    • Domains
    • Plesk
    • SSL/TLS
  • System
    • Mac
    • Unix
    • Windows