Zum Inhalt

Textdateien vs. Binärdateien - Warum ist das wichtig für Git?

Textdateien vs. Binärdateien - Was ist der Unterschied und weshalb ist das relevant für die Versionierung mit Git?

Hier im Blog sind bereits einige Beiträge zu Git und der Versionierung von Word- und Excel-Dateien zu finden. Dabei bin ich noch nicht genau darauf eingegangen, weshalb das Versionieren von Word-Dateien nicht ohne weiteres in Git möglich ist.

Darum eine kurze Unterscheidung und Gegenüberstellung von

  • Textdateien
  • Binärdateien

Textdateien

Eine Textdatei enthält ausschließlich darstellbare Zeichen, wie Buchstaben, Zahlen und Sonderzeichen. Handelt es sich um reinen Text, spricht man auch von Plain Text oder einem Flat File.

Es gibt dafür unterschiedliche Zeichenkodierungen, die die eindeutige Zuordnung von Schriftzeichen, meist sog. Sonderzeichen innerhalb des Zeichensatzes erlauben. Ein Beispiel sind die deutschen Umlaute, die nicht in jedem Zeichensatz verfügbar sind. Schreibt jemand ausschließlich Englisch, benötigt er die Umlaute nicht und kann deshalb einen Zeichensatz ohne die deutschen Umlaute laden.

Obwohl nur darstellbare Zeichen in der Datei verwendet werden, ist es trotzdem möglich einen reinen Text zu formatieren. Dazu verwendet man spezielle Operatoren, die den Text bei der Ausgabe entsprechend formatieren und darstellen.

Der Unterschied zu einer Binärdatei, diese Befehle zur Formatierung können manuell und durch ein spezielles Programm im Hintergrund gesetzt werden.

Ein kleines Beispiel

HTML, Markdown und LaTeX nutzen Textdateien und für die Formatierung des darin enthaltenen Textes werden definierte Operatoren verwendet.

Die Formatierung FETT sieht in den beiden Sprachen so aus.

  • HTML = **text**
  • Markdown = **text**
  • LaTeX = \textbf{text}

Wie du siehts ist diese Art der Formatierung mit ein wenig Übung auch manuell zu schreiben und so durch Menschen lesbar. Die so formatierten Textdateien werden durch entsprechende Programme / Tools umgewandelt, um den formatierten Text darzustellen.

Am bekanntesten dürften wohl die HTML-Dateien sein, die automatisch von Webbrowser formatiert und dargestellt werden.

Binär-Dateien

Im Gegensatz dazu sind Binärdateien ohne Spezialprogramme, wie z.B. Microsoft Word oder LibreOffice Writer, nicht von Menschen zu erstellen und zu lesen. Anstatt reinen Text zu verarbeiten, reichern diese Programme den Text mit zusätzlichen Informationen zur Formatierung, der verwendeten Schriftart, etc. im Hintergrund automatisch an. Dieses Mehr an Informationen lässt sich dann nicht mehr nur als reiner Text darstellen, sondern benötigt eine weitere Informationsebene, eine binäre Ebene.

Auf Grund der zusätzlichen Komplexität die durch die weitere Informationsebene zu den Dateien hinzugefügt wird, ist ein lesen ohne Hilfsmittel nicht mehr möglich. Es wird immer eine Spezialsoftware zum Lesen und Vergleichen der Änderungen benötigt.

Text vs. Binär - ein Vergleich

Der Unterschied zwischen den beiden Dateiarten lässt sich am einfachsten mit einem kleinen Beispiel darstellen.

Nehmen wir den folgenden Blindtext "Lorem ipsum", wie hier dargestellt, und fügen diesen in jeweils eine Textdatei und eine Binärdatei ein.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vulputate nunc eleifend sodales suscipit. Phasellus interdum mattis magna vitae finibus. Suspendisse nibh elit, feugiat efficitur sollicitudin in, cursus feugiat turpis. Nullam vel fringilla tellus. Duis ullamcorper, justo quis imperdiet molestie, dui metus tincidunt tortor, eget gravida lectus sapien vel eros. Nulla egestas massa eget turpis accumsan, pulvinar pharetra diam mattis. Quisque sit amet erat non urna imperdiet imperdiet vitae id est. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Aenean imperdiet vulputate enim id cursus. Proin sodales lorem ut porta facilisis. Pellentesque pharetra, purus a euismod iaculis, arcu nibh mattis nisl, vitae pellentesque magna ante a nulla. Duis erat risus, posuere vel vestibulum ut, feugiat id dui. Nulla condimentum pellentesque augue non lacinia. Quisque eget semper enim. Pellentesque sit amet sapien quis nunc hendrerit tincidunt. Maecenas nec tempus erat. Vestibulum efficitur vulputate ex eget viverra. Praesent gravida nisi neque, quis facilisis odio gravida at. Nulla eleifend fringilla turpis, ut rutrum tellus molestie vel. Sed dapibus, velit eget efficitur molestie, nunc augue facilisis massa, auctor imperdiet sem nisl eu ex. Fusce tempor auctor efficitur. Nulla facilisi.

Maecenas pellentesque non urna in mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer a mauris sed ex pharetra viverra. Nunc mi ipsum, sollicitudin vitae nibh quis, varius commodo dolor. Aenean ligula enim, sodales non rutrum vitae, dapibus eget quam. Aenean pretium est ligula. Morbi rutrum pellentesque eros, at molestie sapien tincidunt non.

Cras ut augue ornare, dignissim augue ac, suscipit orci. Praesent mi magna, imperdiet non tellus sed, fringilla pharetra lectus. Aenean porta aliquet purus. Ut eget molestie sapien. Suspendisse tellus augue, egestas eget nulla at, dapibus sollicitudin lorem. Nullam viverra risus ut urna laoreet, ac scelerisque felis malesuada. Nulla luctus, ante ut posuere euismod, dolor tortor semper tellus, vitae vehicula eros urna sit amet augue. Cras nec lectus diam. Maecenas turpis tellus, imperdiet sed ex quis, molestie imperdiet neque.

Donec eleifend lobortis egestas. Aliquam ullamcorper, nisi cursus efficitur mollis, metus tellus dapibus tortor, quis iaculis nulla massa eu lorem. Donec elit odio, ornare nec dui vitae, facilisis hendrerit nunc. Vestibulum auctor ac nunc sit amet sagittis. Pellentesque placerat dui in malesuada consequat. Donec nec maximus leo. Nullam nec cursus est. Vivamus non sagittis sapien. In fermentum, massa sagittis bibendum interdum, diam ipsum tincidunt eros, eu tincidunt tortor augue a nunc. Ut vel faucibus massa. Aenean quis fringilla ex. Curabitur fringilla orci eget mi egestas, id interdum nisl euismod. In fringilla scelerisque efficitur. Nullam suscipit enim turpis, at pharetra odio ullamcorper sit amet. Cras viverra quam sit amet consectetur hendrerit. 

Die Textdatei nennen wir text.txtfür das Beispiel der Binärdatei erstellen wird eine Word-Datei mit dem Namen binär.docx. Anschließend stellen wir die beiden Dateien jeweils direkt im Editor "Notepad++" gegenüber.

Textdateien vs. Binärdateien

Auf der linken Seite ist die Textdatei, auf der rechten Seite die geöffnete Binärdatei.

Es lässt sich an diesem Beispiel sehr gut erkennen, dass der Inhalt der Textdatei von dir ohne Probleme gelesen werden kann. Eine Formatierung des Textes, in z.B. kursiv, fett oder mit Überschriften gibt es in der Textdatei nicht.

Den Inhalt der Binärdatei ist im Editor dagegen nicht lesbar. Unser verwendetes Schreibprogramm Microsoft Word formatiert automatisch den eingesetzten Blindtext "Lorem ipsum" ohne unser Zutun.

Die aktuellste Version des Editors Notepad++ kannst du von der offiziellen Projektseite herunterladen https://notepad-plus-plus.org

Git

Wie du siehst, ist es für ein Versionierungstool einfacher Textdateien zu verwalten als Binärdateien. Das soll aber nicht bedeuten, dass Word- und Excel-Dokumente nicht auch gemanaget werden können, ein paar kleine Anpassungen vorausgesetzt.

Du solltest folgendes berücksichtigen, verwaltest du in deinem Versionierungstool binäre Dateien, benötigt jeder Teilnehmer Zugriff auf das Spezialprogramm, um die Dateien und die Änderungen einsehen zu können.

Textdateien hingegen werden bereits durch die Weboberfläche von Git, z.B. Gitea, GitHub, GitLab, Bitbucket, etc. lesbar dargestellt und auf den lokalen Clients der Teilnehmer wird lediglich ein beliebiger Editor benötigt, um die Dateien ansehen und bearbeiten zu können.

Weitere Artikel

Du möchtest deinen eigenen Git-Server mit Gitea installieren?

Dann findest du eine Anleitung zur Installation und Konfiguration auf einer Synolog NAS 👉 Gitea auf einem Synology NAS installieren

Hier gibts die Anleitung zur INstallation auf einem ganz normalen Linux-System, z.B. einem Raspberry Pi 👉 Gitea – Eine grafische Oberfläche für den Git-Server

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj