Versionsverwaltung mit Git

Einführung in git

Dateien "versionieren" (besonders Quellcode, aber auch Texte o.ä) – Warum?

→ Zeitmaschine

→ Änderungsdokumentation

→ Kollaborationswerkzeug

"Zu Fuß" Speichern unter unterschiedlichen Dateinamen, wiederholtes Sichern eines ganzen Verzeichnisses.


gfs_v1.odt 
gfs_v2.odt 
gfs_final.odt
gfs_final_final.odt
                
  • Fehleranfällig
  • Jede Datei muss "einzeln" versioniert werden, oder immer das ganze Verzeichnis
  • Keine Änderungsdokumentation
Lösung: "Versionskontrollsystem" (VCS)

Software, die das kommentierte Versionieren von Dateien (hier ganze Verzeichnisbäume mit verschiedensten Dateien) nach festgelegten Regeln ermöglicht.

Man kann damit:

  • Frühere Versionen der Dateien anschauen und wiederherstellen
  • Unterschiede zwischen Versionen anzeigen
  • Kommentare zu Änderungen verfassen und später anzeigen lassen
  • Verschiedene "Entwicklungszweige" verwalten
  • Änderungen, die in Konflikt miteinander stehen zusammenführen

Zentralisiertes Versionskontrollsystem (VCS)
Z.B. CVS oder Subversion (SVN)
Daten und Historie liegen auf einem zentralen Server Benutzer "checkt eine lokale Arbeitskopie aus" und "checkt seine Änderungen wieder ein"

Verteiltes Versionskontrollsystem (distributed VCS)
z.B. Mercurial (HG), Bazaar (BZR) oder Git.
Alle Veränderungen sind bei jedem Nutzer lokal vorhanden und nicht nur auf dem Server.
Jede Kopie ist eine volles Backup aller Daten (ein "Klon")
Verschiedene lokale Kopien können miteinander synchronisiert werden

Bei Git sind alle Veränderungen bei jedem Nutzer lokal vorhanden und nicht nur auf einem Server.
Jede Kopie ist eine volles Backup aller Daten (ein "Klon")
Verschiedene lokale Kopien können miteinander synchronisiert werden.

Achtung: git ≠ Github.

git ist das freie, quelloffene Versionskontrollsystem - es operiert zunächst ausschließlich lokal. Alle Funktionen sind ohne Server verfügbar.

GitHub ist eine Codesharingplattform und eine Möglichkeit mit Hilfe von git Code gemeinsam zu entwickeln. Die Plattform gehört seit 2018 dem Konzern Microsoft.

Geschichte

  • Linux-Kernel Entwicklung: Bitkeeper als VCS, proprietär, kostenlose Lizenz für die Kernelentwicklung
  • Lizenzänderung bei Bitkeeper, kostenlose Lizenz wird gestrichen
  • Linux Torvalds entwickelt 2005 git, um den Linux Kernel zu entwickeln
  • git dürfte heutzutage das meistverwendete VCS weltweit sein