Donnerstag, 4. Januar 2024

Git und GitHub

In der Welt der Softwareentwicklung ist Git als Versionsverwaltungssystem sehr verbreitet, und gilt gemeinhin als schwierig. Im Folgenden möchte ich zeigen, dass die Grundbegriffe jedoch nicht schwierig zu erlernen sind. 

Das Prinzip der Software beruht auf einer lokal auf dem Rechner des Entwicklers laufenden Kommandozeilenumgebung oder alternativ einem Grafischen User Interface und einem in der Regel öffentlichen Zugang zum Code auf der Website github.com.

Für Windows 64 Bit Systeme kann man sich Git hier herunterladen. Nach der Installation stehen dann 'GIT Bash', 'GIT GUI' und 'GIT CMD' standardmäßig unter 'C:\SPB_Data' zur Verfügung. Der Ordner '\SPB_Data' ist dann auch das 'home' Verzeichnis '~'. Wer 'GIT BASH' unkompliziert in einem anderen Ordner öffnen möchte, kann dies durch Rechtsklick im Explorer und Auswahl von 'Open GIT Bash here' tun.

Zunächst habe ich einen Ordner 'GitExample' erstellt, und darin eine leere Datei namens 'Test.txt' erzeugt. Anschließend muss mit 'git init' Speicherpatz initiiert werden. Dadurch wird ein leeres 'repository' angelegt. Mit 'gid add .' wird festgelegt, dass alle Änderungen im aktuellen Folder gesichert werden sollen, die seit dem letzten Speichern bzw 'commit' gemacht wurden.

Als Nächstes soll mit 'git commit -m' die gemacht Änderung beschrieben und gesichert werden. Der Parameter -m steht dabei für Message. Da zusammen mit der Änderungsbeschreibung aber auch die Zeit der Änderung sowie der Name des Ändernden gespeichert werden, muss beim ersten Ausführen mit 'git config --global user.email' die e-mail Adresse, und mit 'git config --global user.name' ein Username angegeben werden. 'git log' zeigt dann alle gemachten Änderungen an, und gibt einen 40-stelligen Hashwert zurück.

Erzeugen wir, wie unten gezeigt, weitere Änderungen, gelangt man mit 'git checkout' und Angabe des Hashwertes zu einem bestimmten Zustand zurück.  Wir befinden uns dann aber in einem anderen Ast, der durch eben diesen Hashwert benannt ist.

Mit 'git checkout master' gelangt man z.B. wieder zurück zum 'master' Ast, und mit 'git checkout -b main' erzeugt man einen neuen Ast namens 'main' mit dem aktuellen Zustand.

Um den lokalen Zustand auf GitHub zu laden, muss man sich zunächst mit seiner bereits lokal verwendeten e-mail Adresse und dem Usernamen auf GitHub anmelden, und anschließend ein neues 'repository' anlegen.

Folgende Anleitung zum Hochladen wird nach dem Erstellen des repositories auf der Website angezeigt: 'git remote add origin https://github.com/UserName/RepositoryName.git' legt das Quell- und Zielrepository auf GitHub fest, 'git branch -M main', forciert das Anlegen des Astes 'main' im repository und mit 'git push -u origin main' kann der lokale 'main' Ast hochgeladen werden.

Im Folgenden wollen wir nun eine Änderung am Projekt durch einen anderen User simulieren. Wir legen einen neuen Ast 'new-branch' an, und legen in diesem eine dritte Testdatei an. Dann laden wir diesen Ast mit einem push request hoch. 

Auf GitHub erscheint folgendes

Der Owner kann diese Anfrage nun akzeptieren und in main 'mergen', wenn er die Änderung für gut befindet.


Natürlich möchte man diese Veränderung auch auf seinem lokalen System abbilden. Mit 'git pull origin main' zieht man sich den veränderten 'main' Ast auf seinen Rechner, und kann mit der verbesserten Version weiterarbeiten. 

Unten nochmal alle verwendeten Kommando in der Übersicht:

  • git init = Projekt initialisieren, um Git zu verwenden
  • git add . = Alle zu speichernden Änderungen hinzufügen
  • git add *filename* = Einzelne zu speichernde Datei hinzufügen
  • git commit -m "message" = Änderungen speichern und Änderungsneschreibung hinzufügen
  • git push origin master = Änderungen an Github Master übertragen
  • git push origin new-branch = Änderungen an Github new-branch übertragen
  • git pull origin master = Änderungen vom Github Master abrufen
  • git checkout -b new-branch = einen neuen Zweig erstellen
  • git status = Status der Änderungen prüfen
  • git log = alle zuvor gespeicherten Änderungen anzeigen
  • git checkout *Commit-Hash* = Zurück zum alten Commit


Und noch ein Fun Fact zum Abschluss. Der Name „Git“ bedeutet in der britischen Umgangssprache so viel wie „Blödmann“. Ob der Begriff zutreffend ist mag jeder selbst entscheiden.


Viel Spaß beim selber programmieren...


Keine Kommentare:

Kommentar veröffentlichen