From bf6c105bc58f3ccc7117ca3b73099c443c32dfc8 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Wed, 26 Aug 2026 00:25:52 +0200 Subject: [PATCH] Zeilenenden im Repo festlegen Beim Einchecken der Sicherungsskripte meldete Git, es werde LF durch CRLF ersetzen. Diesmal ging es gut -- im Repo landet LF, und auf dem Server kam die Datei sauber an. Verlassen sollte man sich darauf nicht: Faellt bei einer .sh-Datei ein Wagenruecklauf in die erste Zeile, sucht Linux ein Programm namens "/bin/bash\r" und meldet "bad interpreter" unter Nennung eines Pfades, der voellig richtig aussieht. Dieser Fehler kostet erfahrungsgemaess mehr Zeit als er verdient. Co-Authored-By: Claude Opus 5 --- .gitattributes | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..8aaaa3e2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,27 @@ +# Zeilenenden festlegen. +# +# Entwickelt wird auf Windows, ausgeliefert wird auf Linux. Windows +# beendet Zeilen mit zwei Zeichen (CR LF), Linux mit einem (LF). Bei +# Textdateien ist das folgenlos -- bei Skripten nicht: Aus der ersten +# Zeile "#!/bin/bash" wird dann "#!/bin/bash\r", und Linux sucht nach +# einem Programm, dessen Name auf ein unsichtbares Zeichen endet. Der +# Fehler lautet dann "bad interpreter" und nennt einen Pfad, der voellig +# richtig aussieht. +# +# Deshalb: Alles, was auf dem Server ausgefuehrt wird, bekommt fest +# Unix-Zeilenenden -- unabhaengig davon, womit es bearbeitet wurde. + +*.sh text eol=lf +*.mjs text eol=lf +*.js text eol=lf +*.json text eol=lf +*.sql text eol=lf +*.yml text eol=lf + +# Bilder und Schriften nie anfassen. +*.png binary +*.jpg binary +*.webp binary +*.ico binary +*.woff binary +*.woff2 binary