You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
teldra a417c357ad git add explanations 2 months ago
git git add explanations 2 months ago
media README.md: fix an image (#7) 2 months ago
Buch.txt main (#1) 2 months ago
README.md git add explanations 2 months ago
git-konfigurieren.md git-konfigurieren.md: Mehr struktur 2 months ago
konzept_commit_history.md konzept_commit_history.md: log = history 2 months ago

README.md

Willkommen

Ich habe dieses Repository angelegt, damit wir damit ein bisschen spielen koennen. Noch ist es leer aber ich hoffe, wir fuellen es bald.
Ich wuerde gerne auf ein bisschemn git-Terminologie eingehen.

Was ist git?

git ist eine Software zur "verteilten Versionsverwaltung von Dateien" sagt wikipedia. Genauer bedeutet das, dass ich verschiedene Versionen einer Datei verwalten kann. Und das geht eben auch auf verschiedenen Rechnern.

Ein praktisches Beispiel waere folgendes Problem: "Ich moechte mit mehreren Leuten ein Buch schreiben" (Damit das passt, gibt es eine Bedingung: Es muss eine Datei sein.) (Keine Angst, ich erklaere Fachwoerter noch)

Jetzt wuerden wir, herkoemmlich, alle staendig diese Datei austauschen, damit alle auf dem neuesten Stand sind und es wuerden so sachen passieren wie "datei3_jetzt_aber_wirklich.txt" ...

Da kommt dann git ins Spiel. In diesem Szenario wuerde ich einen Repository als ultimative Instanz definieren. Z. B. dieses Repository hier "Spielwiese". Das kann man bei github machen, besser gitlab, besser selber hosten. (Es gibt auch Faelle, wo man sowas gar nicht braucht. Z. B. wenn man nur fuer sich etwas versionsverwalten will auf dem eigenen Rechner. Z. B. die Rezeptedatenbank. Oder die Kontakte oder oder ...)

Die Leute, die dann an dem Buch mitarbeiten, "forken" sich das Repository damit sie eine Kopie in ihrem eigenen Account haben. Im optimalfall "clonen" sich die Leute das dann von ihren Accounts auf den eigenen Rechner um da dann an den Dateien arbeiten zu koennen.

Sinnvoll waere jetzt einen "branch" anzulegen. Ein "branch" ist, quasi, eine Kopie der Daten im gleichen Ordner, der ich einen Namen geben kann. Pro "repository" gibt es immer mindestens einen Branch, der frueher "master" hiess, mittlerweile setzt sich aber "main" durch. Ich lege nun einen "branch" namens "kapitel-2" an und schreibe mein Kapitel in die Datei (Z. B. Buch.txt).

Wenn ich dann mit der Aenderung fertig bin, muss ich diese "committen". Das ist ein elementares Ding bei git, daher gehe ich da etwas ausfuehrlicher drauf ein.

Eine der wichtigen Dinge, beim verteilten Arbeiten an einem Material, ist die Nachverfolgbarkeit von Aenderungen. Dafuer hat git ein sogenanntes "log" aller Aenderungen. In diesem log stehen auf den ersten Blick aber nicht alle Aenderungen im Detail, sondern nur Zusammenfassungen der Aenderungen.

Ich gehe zu unserem Beispiel zurueck und werde noch etwas genauer ab dem Punkt, wo ich denke, dass meine Aenderung am Buch fertig ist. Ich nehme ja an, die Datei heisst "Buch.txt" und ich wollte Kapitel 2 hinzufuegen. Nachdem ich damit fertig bin, sage ich git mit einem Befehl, welche Datei in diesen "commit" soll. Das kann von einer Datei bis hin zu allen Dateien sein. Danach gebe ich dann dem commit seine Beschreibung. In diesem Falle wuerde eine commitmessage wie "Kapitel 2 hinzugefuegt" wohl passend sein.

Nun muss ich das noch in meinen Account auf dem Server hochladen und von da aus die Aenderung vorschlagen. Wenn die Person, der das Hauptrepository gehoert, mit der Aenderung zufrieden ist, kann sie diese dann in den Hauptzweig des Projektes "mergen".

** Keine Angst. Das ist nur ein Ueberblick. Wir werden das nach und nach durchgehen! **

hier noch ein versuch der zusammenfassung
hier das git buch

Begriffe (todo)

  • repository (repo): Ein Container wo alles zum Projekt gehoerende drin ist. Kann lokal und remote sein.
  • fork: (M)Ein fork ist (M)Eine Kopie des originalen Repositorys. (idr ein clone vorgang auf dem Server.)
  • clone: Ist der Vorgang, ein repo zu kopieren. (idr benutzt um ein repo auf den eigenen Pc zu kopieren)
  • pushen: das hochladen eines branches zum repo, von dem geklont wurde.
  • pull-request (pr): Das Anbieten von Aenderungen am Material.
  • branch: Ein Arbeitszweig in einem repo. Ein Arbeitszweig ist der Name der Versionsgeschichte der Dateien im repo.
  • merge: Das Zusammenfuegen der commits von zwei Arbeitszweigen.
  • commit: Zusammenschluss von Aenderungen unter einer Beschreibung.

Erste Schritte

Das erste, was Du jetzt tun kannst ist, dieses repo zu forken. Als Hinweis: Ganz rechts oben sollte "Fork" stehen.

Damit wird eine Kopie dieses Repositorys in deinem Account angelegt. Deine Kopie wird bei Aenderungen in diesem Original nicht geupdated, das muss manuell passieren. Dazu spaeter mehr.

Screenshot 1

Zweiter Schritt

Wenn du git effizient nutzen willst, musst du es einstellen. Lies hier um mehr zu erfahren.