diff --git a/Lerntagebuch.md b/Lerntagebuch.md index 9f2c8ad..fbc61fc 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -97,7 +97,7 @@ Alle Entwickler haben eine eigene Historie. Es wird kein Netzwerkzugang benötigt und mehrere Bedienungen sind möglich. Man kann implizite Backups erstellen und man arbeitet Lokal – und ist privat. Die Lokalen Daten werden nicht synchronisiert und einen Schutz für die gleichzeitige Änderungen sind nicht vorhanden. -### Git +## Git Beim Konzept von git sind Verschiebungen identifizierbar. Git basiert nicht auf Dateien, sondern lediglich an Änderungen der Dateien. Nach jeder Änderung sind deshalb auch die Vorgänger erkennbar. Die Branches sind Labels auf Commits  z.B. diese Branche gehört ab jetzt einem anderen Commit. ## Commits @@ -110,26 +110,26 @@ Man kann sich ein Kreis vorstellen. Test -> Code -> Refactor. - Merge/Rebase Konflikte sind behoben. ## Branching -### Master +# Master Haben eine unendliche Lebensdauer und einen Verantwortlichen „Committer“. Jeder Commit verweist auf einen Versand. Commits sind mit Versionsnummern gekennzeichnet. Es sind keine direkten Commits, nur Merges aus dem Realese- oder Fix-zweig erlaubt. -### Develop +# Develop Erstes Commit ist das Projektstart. Ist immer im versandbereiten Zustand und Testdurchläufe sind automatisiert. Jeder Entwickler kann Feature festschreiben (Bis Build-Server). -### Release +# Release Hat eine begrenze Lebensdauer während des Einfrierens einer Funktion. Keine neuen Funktionen werden angelegt, sondern Fehler werden behoben. Jeder Entwickler kann sich verpflichten. Release sind auch Kandidaten von Tags. Der Build-Server sollte den Zweig wieder mit dem Develop-Branch zusammenführen. -## Hotfix +# Hotfix Hat eine Kurze Lebensdauer. Erscheint aus dem Master (Letze Commit). Ist keine neue Funktion, sondern nur zum schnellen beheben von Fehlern. -## Feature. +# Feature. Hat eine begrenzte Lebensdauer und stammt aus Develop. Sollte ein neues Commit in dem Entwickler basieren und zusammenführen. -## Merge +# Merge Die Vorteile liegen darin, dass eine Parallelarbeit visualisiert wird. Die Lösung bei einem Merge wird pro Zusammenführen nur einmal gemacht. Automatische Konfliktlösung kann mit (-s recursive -X ours|theirs) realisiert werden. Komplexe Vergangenheit Grafik und Konfliktlösung zwischen den Finalzuständen sind jedoch ein Nachteil. -## rebase +# rebase Hat eine Saubere Vergangenheitsgraph (man sieht alles: Funktionen, Commits und wies es aufeinander folgt). Ein automatischer Konfliktlösung ist wahrscheinlicher und auch das manuelle Lösung ist einfacher Die Nachteile sind das wir keine Zeitachse über den verlauf haben. Commits können zu Problemen führen.