# Git-Spiegel der Fassungen (`laws_git/`) Nachvollziehbare Geschichte der Bundesgesetze als **eigenes Git-Repository**. Das Eltern-Repo `lawgit` bleibt die Arbeitskopie (Parser, UI, Markdown von gesetze-im-internet.de). `laws_git/` ist ein verschachteltes Git-Repo und liegt absichtlich nicht auf `main` (außer dieser Anleitung). **Eine Verkündung = ein Commit.** Datum des Commits ist das Verkündungsdatum. ## Was man hier sieht | Aktion | Bedeutung | |---|---| | `git log --oneline -- verkuendungen/` | alle Blätter chronologisch | | `git show HEAD:verkuendungen/2024/bgbl1-2024-167-1.md` | Metadaten einer Verkündung | | `git log --oneline -- bgb/` | nur Stationen, die dem BGB zugeordnet sind, plus heutiger GII-Text | | `git show HEAD:bgb/§1.md` | heutiger Wortlaut von § 1 | **Ehrlich:** Den vollen historischen Paragraphentext haben wir meist nicht. Ältere Commits tragen Metadaten (`FASSUNG.md`, `STELLEN.md`) statt eines erfundenen Altwortlauts. Der letzte Commit eines Gesetzesordners ist die konsolidierte Fassung von gesetze-im-internet.de. 2023+ stammt aus der Heuristik (recht.bund.de): Fundstelle und Titel sind belastbar, Stammnorm-Ordner nur wenn der Kurztitel eine bekannte Norm nennt. 1949–2022: LLM-Parse, lückenhaft solange `--holen` nicht den vollen Bestand hat. **Git-Datum vor 1970:** Apple Git akzeptiert keine Author-Daten vor 1970. Diese Commits liegen intern auf dem 1.1.1970 (Reihenfolge bleibt). Die echte Verkündung steht in der Commit-Message und in `verkuendungen/`. Git = Fassungsgeschichte. Die Postgres-Datenbank bleibt für Abfragen. ## Bauen und nachziehen Im Eltern-Repo: ```bash # Alles neu schreiben (Demo-Kette verwerfen) python3 build_laws_git.py --rebuild # Nur nachziehen (idempotent über Trailer `BGBl-Id:`) python3 build_laws_git.py # Ein Gesetz / Test python3 build_laws_git.py --law bgb --rebuild python3 build_laws_git.py --dry-run --limit 20 ``` Quellen: `timeline/parsed/` (lawgit, GPU-Historie) und `../gesetzblatt/timeline/parsed/` (recht.bund.de ab 2023). Kein Force-Push. ```bash git -C laws_git log --oneline -- verkuendungen/ git -C laws_git log --oneline -- bgb/ git -C laws_git blame bgb/§1.md ``` Optional zweites Remote (nicht `main` von lawgit): ```bash git -C laws_git remote add origin git@git.coded.law:michaelkole/laws-git.git git -C laws_git push -u origin main ```