Fundstelle: BGBl. 2013 I S. 3836 Inkrafttreten: 2013-10-25 (Artikel 1 § 12 Absatz 2 und § 14, Artikel 2 §§ 8, 13 und 14, Artikel 5 Nummer 1 Buchstabe d, i und j, Nummer 8, 12 und 16, die Artikel 7 und 8 Nummer 1 bis 3, Artikel 9 Nummer 2, Artikel 11 Nummer 2, 3 und 5, die Artikel 12, 14, 15, 16 Absatz 4a und 17 Nummer 2 sowie Artikel 16a); 2010-08-11 (Artikel 16 Absatz 17 Nummer 1); 2013-07-01 (Artikel 3 Nummer 3 und Artikel 16 Absatz 5); 2013-09-01 (Artikel 13); 2014-01-01 (Artikel 3 Nummer 2 sowie Artikel 11 Nummer 1 und 4); 2015-01-01 (Artikel 1 §§ 1 bis 11, 12 Absatz 1 und § 13, Artikel 3 Nummer 1 und 4 bis 9, Artikel 5 Nummer 1 Buchstabe a bis c und e bis h, Nummer 2 bis 7, 9 bis 11, 13 bis 15, Artikel 8 Nummer 4 Buchstabe a und b, Artikel 9 Nummer 1, Artikel 13a sowie Artikel 16 Absatz 1 bis 4, 12 bis 16 und 18); 2017-01-01 (Artikel 16 Absatz 7); 2017-07-01 (Artikel 13c); 2016-01-01 (Im Übrigen tritt dieses Gesetz in Kraft); 2017-07-01 (Artikel 1 § 7 tritt außer Kraft); 2022-01-01 (Artikel 2 § 15 Satz 2 tritt außer Kraft) 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: 2013-10-24 BGBl-Id: bgbl1-2013-63-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