Was ist GIT?
Bei GIT handelt es sich um eine freie Software, die Programmierern das Leben und die Arbeit erleichtert. GIT ist eine Versionsverwaltung. Mithilfe dieser lassen sich die Dateien eines Projektes einfach organisieren und an beliebiger Stelle erweitern, optimieren und deployen.
Wie funktioniert GIT?
Damit Du dir das GIT mal Bildlich vorstellen kannst, hier mal ein kurzes Beispiel.
In einem Workflow gibt es immer 3 Ebenen.
- Working Directory
- Stage Area
- Repository
Stell Dir an dieser Stelle am besten Dein Bankkonto vor. Dein Bankkonto ist das Repository. Der Working Directory wäre in diesem Fall die Überweisungsfunktion im Online-Banking. Nachdem Du die Daten der Überweisung eingegeben hast, befindet sich die Information für die Überweisung schon mal in der Stage Area. Abschließend muss die Überweisung noch Bestätigt werden. Dafür ist ein TAN von nöten. Wenn der TAN erfolgreich war, wird alles an dein Bankkonto übermittelt. (beziehungsweise bei einer Überweisung eher abgezogen :P)
Hier mal eine Grafik, um das leichter zu verstehen :)
Warum sollte ich GIT benutzen?
Jeder Entwickler sollte sich mit GIT auseinander setzen. Normale Orderstrukuren besitzen nicht die Power um eine Versionskontrolle zu ersetzen. Du kannst auch nicht die 100. Final Version von einem Projekt erstellen und mit Kollaborationen im Team will ich jetzt gar nicht erst Anfagen.
Gerade mit einem "GIT-Server" (auch wenn es eigentliche keiner ist) hast Du unteranderem folgende Vorteile:
- Arbeiten im Team
- Backup des Codes
- Änderungen tracken
- Änderungen wiederherstellen
- Perfomanter als Ordnerstrukturen
- Übersichtlich, wenn man etwas länger damit arbeitet
- Schnell und Speichersparend
- Projekt direkt deployen
- ...
Es gibt sicherlich noch mehr Vorteile, aber wenn dich das noch nicht überzeugt hat, kann ich Dir nicht mehr helfen. :D
In meinen Augen der einzige Nachteil:
- einiges an Zeit für GIT investieren
Nach ca. 10 Stunden solltest Du in der Lage sein, dein Repository im GIT zu Verwalten. Der Feinschliff kommt meistens später.
Was ist ein Workflow?
Ein Workflow umschreibt einfach nur einen Ablauf, den man an den Tag legt, um eine Gewisse konsitents zu Gewährleisten.
Welchen GIT Workflow soll ich benutzen?
Kommt ganz darauf an, wie Du bzw. Dein Team arbeitet. Meiner Erfahrung nach ist das für mich einer der einfachsten Flows:
- git checkout -b feat/Änderung entsprechender Name
- git add Dateiname oder . (alles)
- git commit -m Eins Commit
- git checkout Zweig wohin du mergen möchtest
- git merge --no-ff der zu mergende Branch
- git push origin *entsprechende Branch
So in etwa erstelle ich eine Änderungen oder Entwickle ein neues Feature für ein bestehendes Projekt. Natürlich ist das Naming eure Sache. Vernünftige Benennungen haben jedoch noch keinem Projekt geschadet.
Wie schreibe ich Commit Messages
Commit Messages sind max. 50 Zeichen Lange Nachrichten, um über den aktuellen Stand der Änderung an der Codebase zu informieren. Bitte keine Romane schreiben. Wichtig um der Konvention gerecht zu werden. Die Messages werden in der Gegenwart geschrieben.
Nein, so nicht:
- added a new Cookie
- hätte ich gestern doch noch den Code geändert..
Geht klar:
- add split to functionX
- change value of .. to ..
Am Anfang fand ich das auch sehr weirrd, in der Gegenwart zu schreiben. Deswegen hab ich es auch einfach nicht gemacht. :D Mittlerweile kommt doch so langsam aber sicher Struktur in die Bude.
Wie Du die perfekt Nachricht schreibst, werde ich in einem anderen Post erklären und hier verlinken. Ansonsten würde das nur den eigentlichen Zweck verfehlen.
Was ist ein GIT Branch
Ein Git branch ist nichts weiter als eine Kopie eines anderen Zweiges. Klingt vielleicht komisch, ist aber so. Stell dir ein Branch wie ein Ast an einem Baumstamm vor. An diesem Ast können unendlich viele Äste wachsen. An diesen Ästen können auch wieder Äste wachsen usw. usf.
Hier gehts zu GIT-Branch erklärung: kommt bald :P
Was ist GIT Checkout
Der Befehl git checkout macht genau das, was der Befehl schon sagt. Du wechselst mit diesem Befehl den Branch.
Beispiel:
- git checkout master
- git checkout feat/new-feature
- git checkout bugfix/shippingcost-validation
Wie erstelle ich einen GIT Branch
Ein Git Branch kannst du ganz einfach mit dem Befehl git checkout -b BRANCH-NAME erstellen. Das ist eine kleine Abkürzung, da du somit auch gleich im neuen Branch landest. Du kannst denn Branch natürlich auch mit dem Befehl git branch BRANCH-NAME erstellen und diesen anschließend auschecken. Aber jedem das seine.
Zusammenfassung
GIT ist eine Versionskontrolle für deine Projekte. Lerne die Befehle für die Konsole kennen und benutze sie, anstatt wild in einer GUI rumzuklicken. Das hat schon öftere Male nicht so gut funktioniert. Spreche hier aus eigener Erfahrung. ;)
Wenn Du noch fragen hast, melde dich gerne bei mir.
Per Mail oder bei Instagram bin ich ständig erreichbar.