Fundstelle: BGBl. 2009 I S. 160 Inkrafttreten: 2008-03-28 (Artikel 2 Nr. 19 Buchstabe c, Nr. 37); 2009-01-01 (Artikel 2 Nr. 62 Buchstabe a Doppelbuchstabe aa, bb und dd, Buchstabe c und Nr. 69); 2009-04-01 (Artikel 15 Abs. 98 Nr. 2); 2009-07-01 (Artikel 2 Nr. 1 Buchstabe a, Nr. 8, 9, 13, 18, 20, 22 Buchstabe c, Nr. 26, 29 Buchstabe b, c und d, Nr. 32 Buchstabe b, Nr. 56 bis 58, 61, 62 Buchstabe a Doppelbuchstabe cc, Buchstabe f, Nr. 63 Buchstabe a Doppelbuchstabe bb, Nr. 65, 66, 68 und 69a, Artikel 3, Artikel 4 Nr. 2 Buchstabe c, Nr. 5 Buchstabe a Doppelbuchstabe aa, Nr. 31a und 51 § 69g, Artikel 5 Nr. 1 Buchstabe b, Nr. 5 Buchstabe a, Nr. 19a und 39 § 100, Artikel 14, Artikel 15 Abs. 19 Nr. 1, Abs. 31 Nr. 2, Abs. 37, 50 mit Ausnahme von Nr. 1 Buchstabe b und d, Abs. 71, 74 Nr. 1 und 2, Abs. 76 Nr. 2, Abs. 77, 79 und 104 Nr. 4 Buchstabe b); 2010-06-01 (Artikel 2 Nr. 37); 2010-07-01 (Artikel 2 Nr. 1 Buchstabe b, Nr. 2, 6, 36, 38, 39 bis 42, 43, 45, 46 Buchstabe b und c, Nr. 62 Buchstabe e, Nr. 67, Artikel 4 Nr. 14 Buchstabe b sowie Artikel 15 Abs. 18 Nr. 1, Abs. 23 Nr. 3, Abs. 41 Nr. 2 und 3, Abs. 44, 50 Nr. 1 Buchstabe d, Abs. 58, 65, 69, 73 Nr. 1 Buchstabe b und Nr. 3, Abs. 80 Nr. 2 und Abs. 104 Nr. 6); 2011-01-01 (Artikel 2a, 3a, 4a, 5a und 15a, Bundessonderzahlungsgesetz außer Kraft); 2009-02-12 (Restliches Gesetz); 2010-07-01 (Verordnung über die Zahlung eines erhöhten Auslandszuschlags und Auslandszuschlagsverordnung außer Kraft) Quelle: offenegesetze Parser: llm-teilweise Eine Verkündung = ein Commit. Stammnorm-Ordner nur, wenn zugeordnet. Historischer Paragraphentext fehlt oft; siehe FASSUNG.md / STELLEN.md. Verkündung: 2009-02-11 BGBl-Id: bgbl1-2009-7-2
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:
# 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.
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):
git -C laws_git remote add origin git@git.coded.law:michaelkole/laws-git.git
git -C laws_git push -u origin main