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.
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 wird im Projektroot eingerichtet, eine Ebene über public. Damit werden auch die Verzeichnisse config/sync und --pernet-docs erfasst.
### WICHTIG: Im Projektroot ausführen:
git rev-parse --show-toplevelnot a git repository, mit Schritt 2 fortfahren.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.
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.
Aus public (Merken: drushh und composer immer aus public)
drushh cexDer 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.
Weiterhin aus public:
git status
git add -A
git --no-pager diff --cached --stat
git diff --cachedgit 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.
git commit -m "Drupal-Basisinstallation mit Settings-Struktur und Konfiguration gesichert"
git statusNach dem Commit sollte working tree clean erscheinen.
Diesem separaten Artikel folgen.
git log --oneline
Nur die letzten 10
git log --oneline -10
Mit Datum
git log -10 --date=short --pretty=format:"%h %ad %s"