8 Git verwenden
Jeybe edited this page 4 months ago

STATUS - DRAFT


ToC

  1. Überblick
  2. Git Theorie
  3. Git Praxis

Überblick

Was ist git

Das Programm Git ist eine Versionsverwaltung. Was ist eine Versionsverwaltung? Ein System, um Änderungen an Dateien zu tracken.

Was ist Codeberg?

Eine Webanwendung für Git. Sie ermöglicht es, durch Git mit verschiedenen Personen an Dateien zu arbeiten. Dabei wird jede Änderung transparent erfasst und öffentlich sichtbar.

Warum git & Codeberg?

Für ein effizientes und transparentes Arbeiten im Team.

  • Es lassen sich Konflikte in Dateien vermeiden, wenn mehrere Personen an einem Projekt und somit Dateien arbeiten
  • Es gibt einen klaren Review-Prozess. Rechte für Änderungen können granular verteilt werden, grundsätzlich müssen Änderungen via PR eingereicht und durch den entsprechenden Redaktionsleiter / die Redaktionsleiterin freigschaltet werden
  • Änderungen sind nach Manier von Anoxinon e.V. transparent nachvollziehbar

Git Theorie

Folgend die Kurzfassung, was für die Arbeit am anoxinon-media-repo relevant ist. Ausführlich in einem Blogbeitrag von Anoxinon Media

Repository

Ein Repository, kurz Repo, ist ein von Git verwaltetes Verzeichnis. Alles in diesem Verzeichnis ist versioniert.

Commits

Ein Commit ist eine ganz bestimmte Version.

  • Er wird identifiziert durch eine Zeichenfolge wie 5adba5de66ee39d41784928b14b1fd3c24fc0909. Das ist der SHA1-Hash der Commitdaten.
  • Beinhaltet eine Beschreibung, Autor:in, die Daten und den Vorgänger-Commit

Git speichert grundsätzlich alle Commits auf ewig. Sie lassen sich also jederzeit einsehen inklusive aller Daten.

Branches

Branches sind ein Mittel zur Organisation von Commits.

  • Ein Branch ist ein Versionszweig aus Commits
  • Es kann verschiedene Branches geben
  • Entsprechend haben die verschiedenen Branches verschiede Commits -> es sind verschiedene Versionslinien

Warum macht man das?

  • Um eine Hauptversionslinie zu haben
  • Für Änderungen erstellt man eine neue Versionslinie - einen neuen Branch - der von der Hauptversionslinie abzweigt
  • Ist man mit der Arbeit fertig kann man den neuen Branch in die Hauptversionslinie (Main-Branch) zusammenführen
  • So bleibt man organisiert und kommt nicht durcheinander, wenn man parallel an verschiedenen Änderungen arbeitet

Git bietet entsprechend Mechanismen umd mit Branches umzugehen, sie voneinander abzuzweigen und wieder zusammenzuführen

Forks

Ein Fork ist eine Kopie eines Repositories. Jede:r kann Repositories forken, auf die er/sie Zugriff hat. Warum sind Forks wichtig?

  • In der Regel arbeitet jede:r mit seinem eigenen Fork und nicht in dem Original!
  • Das heißt, jede:r erstellt sich einen Fork -> kopiert sich das Repository
  • Im Fork arbeitet man dann
  • Ist man fertig, kann man die Änderungen im Original-Repository zur Übernahme einreichen

So lässt sich die Arbeit noch feingranularer aufteilen und organisieren.

Clone

Klonen oder Englisch clone ist bezeichnet die Aktion ein Repository inital von einem Server (wie Codeberg) auf den eigenen Rechner herunterzuladen.

Beachte: Das Klonen ist initial und damit einmalig. Der Klon auf dem eigenen Rechner muss manuell aktuell gehalten werden.

Merges

Verschiedene Branches - also Versionszweige - lassen sich zusammenführen. Das nennt sich mergen.

  • In der Praxis wird das sehr häufig verwendet, um Branches, die für die Arbeit an bestimmten Änderungen genutzt wurden nach Fertigstellung in einen Hauptbranch zu übernehmen.
  • Ebenso können so die Änderungen aus einem Fork wieder in das Originalprojekt überführen

Pull Requests

Pull Requests sind eine Funktion von Codeberg (und den meisten anderen auf Git aufbauenden Webapplikationen).

  • Ein Pull Request ist ein Antrag, einen Branch in einen anderen Branch zu mergen.
  • Die Branches können aus verschiedenen Repositories, also auch von Forks stammen.
  • In der Weboberfläche können diese dann von jeder und jedem eingesehen werden und einer Person mit den entprechenden Rechten auf das Repository, in das gemerged werden soll, kann den PR akzeptieren und dies tun

Git Praxis

Installieren

Linux:

Git ist in den meisten Linux-Distributionen in den offiziellen Paketquellen unter dem Namen git enthalten und kann daher auf normalen Wege installiert werden. Als Gedankenstüze findet sich eine Beschreibung der Kommandozeilenschnittstelle der meisten bekannten Paketmanager von Linux im Anoxinon Media Wiki

Windows

Für Windows stehen Installationspakete auf der Git-Webseite bereit. Eine ausführliche Anleitung des Installationsvorgangs findet sich bei Heise Online. Nachfolgend eine Zusammenfassung.

  1. Downloadseite öffnen
  2. Die Standalone-Variante herunterladen.
  3. Datei ausführen und durchklicken, zumeist sind die Standard-Einstellungen ausreichend

Konfigurieren

Deine arbeiten mit Git werden immer mit einem Namen und einer E-Mail Adresse versehen. Diese muss man konfigurieren bevor man Git verwenden kann.

Beachte: Der gesetzte Name und die E-Mail-Adresse ist für jede:n einsehbar, der Zugriff auf das Repository hat, im Falle des anoxinon-web-media Repos also öffentlich für alle.

Bei Git arbeitet man grundsätzlich in der Kommandozeile. Zum setzen des Namens und der E-Mail-Adresse dienen die folgenden Befehle.

git config --global user.name "<dein-username>"
git config --global user.email "<deine-e-mail-adresse>"

Der Schalter --global konfiguriert die Einstellungen dabei global. Wird dieser weggelassen wird die Einstellung nur für das definierte Repository gesetzt.

Codeberk Konto anlegen

Anoxinon verwaltet dessen Git Repos bei Codeberg. Das ist gemeinnütziger Verein aus Deutschland, der die Webanwendung Gitea für die gemeinsame Arbeit mit Git kostenlos bereitstellt. Zur Mitarbeit ist daher ein Konto bei Codeberg erforderlich. Dieses kann direkt auf deren Webseite angelegt werden.

Repo forken

Um mit der Arbeit an anoxinon-web-media zu beginnen, muss das Repo geforked werden. Ruft es dafür bei Codeberg auf und klickt oben rechts auf "Fork". Nun wird eine Kopie des Repos in deinem eigenen Codeberg-Konto angelegt.

Fork clonen

Um mit der Arbeit zu beginnen, muss der eben erstellte Fork auf den eigenen Rechner geklont (heruntergeladen) werden.

  • Navigiere zu deinem Fork wie folgend.
    • Öffne Codeberg und logge dich ein
    • Klicke auf dein Avatar oben rechts
    • Wähle dort "Profile"
    • Suche den Fork, er hat den Name des entsprechenden Original-Repos, also anoxinon-web-media
  • Kopiere dir die URL des Forks
  • Navigiere mit der Kommandozeile zu dem Ordner, in den der Fork geklont werden soll (cd)
  • Klone den Fork in der Kommandozeile wie folgend.
git clone <url-zum-fork>

(Die Beschreibung oben verwendet HTTPS. Erfahrene User können auch auf SSH zurückgreifen.)