Fundstelle: BGBl. 2003 I S. 2190 Inkrafttreten: 2004-01-01 (ganzes Gesetz, soweit in den folgenden Absätzen nichts Abweichendes bestimmt ist); 2003-04-01 (Artikel 5 Nr. 4 (§ 28k)); 2003-09-09 (Artikel 35 § 7); 2003-09-26 (Artikel 1 Nr. 133 (§ 173 Abs. 2 Satz 5)); 2003-11-20 (Artikel 1 Nr. 23 (§ 35) und 118 (§ 140g)); null (Artikel 25 (Datum des Inkrafttretens der Rechtsverordnung nach § 31 Abs. 4 des Fünften Buches Sozialgesetzbuch)); null (Artikel 1 Nr. 92 Buchstabe a Doppelbuchstabe bb (Datum nach dem erstmaligen Inkrafttreten der Festbeträge nach § 35 Abs. 5 Satz 4)); 2005-01-01 (Artikel 1 Nr. 13 (§ 27), 15 Buchstabe a Doppelbuchstabe aa (§ 28 Abs. 2 Satz 1), Nr. 17 (§ 30), in Nummer 36 die §§ 55, 58 Abs. 1, 2 und 4 sowie § 59, Nr. 48 Buchstabe b (§ 73 Abs. 2), Nr. 53 (§ 77), 56 (§ 79a), 57 (§ 79b), 58 (§ 80), 66 Buchstabe b (§ 87 Abs. 1a), Nr. 67 Buchstabe a (§ 87a Satz 1), Nr. 68 (§ 88), 74 Buchstabe d (§ 95 Abs. 5), Nr. 76a (§ 96), 152a (§ 266), 182 Buchstabe b (§ 311 Abs. 4), Artikel 2 Nr. 01 (§ 28 Abs. 4 Satz 2), 3 (§ 79), 4 (§ 81), 7 Buchstabe b Doppelbuchstabe bb und Buchstabe c (§ 85 Abs. 2 Satz 8 und Abs. 4b) und Artikel 5 Nr. 3 (§ 28d)); 2006-01-01 (Artikel 1 Nr. 145 (§ 241a), 146 (§ 245), 147 (§ 247), 149 (§ 249), 150 (§ 249a) und 151 (§ 257), Artikel 2 Nr. 2 (§ 73b Abs. 3), 6 (§ 83), 7 Buchstabe a und b Doppelbuchstabe aa (§ 85 Abs. 1 und 2 Satz 1), Nr. 8 (§ 217) und 9 (§ 248) sowie Artikel 11 und 12 Nr. 3 (§ 16)); 2007-01-01 (Artikel 2 Nr. 1 (§ 71 Abs. 4) und 5 (§ 82)) Quelle: offenegesetze Parser: llm Eine Verkündung = ein Commit. Stammnorm-Ordner nur, wenn zugeordnet. Historischer Paragraphentext fehlt oft; siehe FASSUNG.md / STELLEN.md. Verkündung: 2003-11-19 BGBl-Id: bgbl1-2003-55-1
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