Commit f44bdcd5 authored by Lukas Nagel's avatar Lukas Nagel
Browse files

write abstract and fazit

parent 406ed6bd
......@@ -3,24 +3,18 @@ title: Versions Kontrolle mit Git und GitHub
author: Lukas Nagel, (7126709)
date: IT Technologie Trends WS21/22
abstract: |
Lorem ipsum dolor sit amet, consectetuer adipi-
scing elit. Etiam lobortis facilisis sem. Nullam
nec mi et neque pharetra sollicitudin. Praesent
imperdiet mi nec ante. Donec ullamcorper, fe-
lis non sodales commodo, lectus velit ultrices
augue, a dignissim nibh lectus placerat pede.
Vivamus nunc nunc, molestie ut, ultricies vel,
semper in, velit. Ut porttitor. Praesent in sapien.
Lorem ipsum dolor sit amet, consectetuer adi-
piscing elit. Duis fringilla tristique neque. Sed
interdum libero ut metus. Pellentesque place-
rat. Nam rutrum augue a leo. Morbi sed elit sit
amet ante lobortis sollicitudin. Praesent blandit
blandit mauris. Praesent lectus tellus, aliquet
aliquam, luctus a, egestas a, turpis. Mauris la-
cinia lorem sit amet ipsum. Nunc quis urna
dictum turpis accumsan semper.
fontsize: 11pt
In der Entwicklung von und Zusammenarbeit an Projekten, ist es Notwendig
die Veränderung die zu dem aktuellen Zustand geführt haben nachzuvollziehen
und untereinander auszutauschen.
Ohne Versionsverwaltung ist es sehr Zeitaufwändig nachzuvollziehen wer welche
Änderung und wann vollzogen hat.
Git bietet dazu einen Mechanismus Versionen mit Informationen zum Autor,
Zeit und einer Beschreibung anzulegen.
GitHub bietet auf den Git Mechanismen aufbauend eine Plattform zum
auszutauschen von Änderungen sowie zum veröffentlichen von Projekten.
Dies ermöglicht eine einfache Zusammenarbeit an Projekten
und Zugang zu Informationen.
fontsize: 12pt
geometry:
- left=2.5cm
- right=2.5cm
......@@ -29,8 +23,6 @@ classoption: twocolumn
bibliography: literatur.yaml
lang: de-DE
link-citations: true
fignos-cleveref: true
fignos-plus-name: Abbildung
---
# Motivation
......@@ -531,14 +523,42 @@ sind `git-annex` oder `git-portal`.
Für Projekte die auf GitHub veröffentlicht werden sollen gibt es weiterhin die
Einschränkung, dass höchstens 100MB pro Push Operation übertragen werden dürfen.
## TODO: Offene Enden
* Unterschiedliche Ausführungskontexte => Docker
* Versionierung von Abhängigkeiten => Gradle etc
* Spoofing wegen fehlender Notwendigkeit von Signaturen möglich
* Integration Hell und CI
* Konvolut gleichender Befehlssatz
- Nicht Anfänger freundlich
## Offene Enden
Der Befehlssatz ist "unusually rich"[^7] und besonders für Anfänger, die sich
nicht mit den Interna auseinandergesetzt haben beziehungsweise ein 300 Seiten
Buch gelesen haben, nicht intuitiv.
Teilweise sind Optionen für Befehle inkonsistent, beispielsweise werden
für Operation die den Index betreffen `--cached` oder `--staged` verwendet.
Auch das wechseln von Zweigen ist mit dem `branch` Subkommando nicht Möglich,
sondern nur mit mittels `checkout`, beide können aber Zweige anlegen.
GitHub ist zwar größeter Hoster von Quelloffenen Projekten, selbst aber
proprietär.
Somit ist es nur Kunden von GitHub Enterprise möglich eine Instanz selbst
und unabhängig von Microsofts Azure Service zu hosten.
Trotzdem ist es selbst Enterprise Kunden nicht möglich selbst Änderungen
vorzunehmen oder Sicherheitslücken zu Patchen.
Unabhängige Untersuchungen bezüglich Sicherheit sind somit auch nur erschwert
möglich.
Als verteiltes System können sich auch die Systeme auf denen das Projekt
heruntergeladen wird unterscheiden.
Dies kann dazu führen, dass Abhängigkeiten auf einigen Systemen nicht
installiert oder verfügbar sind.
Dies kann Probleme bei der Zusammenarbeit und Nachvollziehbarkeit mit sich
bringen.
Daher bringen viele Programmiersprachen Systeme zur Abhängigkeitsverwaltung
mit sich, diese Abhängigkeiten können in einer versionierten Datei hinterlegt
werden.
Eine universellere Lösung ist das anbieten von Kompilier beziehungsweise
Ausführungs Umgebungen als Docker Container,
die im Rahmen der Veranstaltung vorgestellt werden.
Git unterstützt zwar Digitale Signaturen, jedoch sind diese nicht zwingend
erforderlich, sodass Spoofing sehr einfach ist.
[^7]: https://git.kernel.org/pub/scm/git/git.git/tree/README.md
# Nutzungshinweise
......@@ -646,18 +666,23 @@ dass SSH und der Private Schlüssel verwendet werden[^6].
Die Einstellungen die zwingend zur Arbeit mit Git erforderlich sind
`user.name` und `user.email`.
# TODO: Fazit
# Fazit
Git ist als Versionsverwaltungssystem eines der Performantesten und bietet eine
große Menge an Funktionalität.
Die Versionsgeschichte hilft eigene und die Änderungen anderer nachvollziehen.
Das effiziente Verzweigungen macht die parallele Entwicklung,
lokal an mehreren Funktionalitäten und verteilt unter Teammitgliedern,
einfach.
Durch die verteilte Topologie ist Git äußert Vielseitig einsetzbar
und viele Operation sind schneller und ohne Verbindung zu einem Server möglich.
Die Verwendung Kryptographischer Hashfunktionen garantiert Integrität.
Das zum Teil oder vollständige Zurücknehmen von Änderungen ist insofern
nützlich das Fehler einfach zu beheben sind.
Mit GitHub steht eine Plattform bereit, auf der Projekte kostenlos hochgeladen
werden können und die die Zusammenarbeit erleichtert.
Weiterhin stellt GitHub eine Grafische Oberfläche zur Verfügung
und sorgt für vereinheitlichte Arbeitsabläufe.
# Literatur
[@hamano2006]
[@chacon2014]
[@haenel2015]
[@blishak2016]
[@herron2019]
[@perkel2016]
[@baerisch2005]
[@gitman]
[@silva2020]
[@devsurvey]
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment