Bisher habt ihr eure Website direkt auf dem Server bearbeitet. Das funktioniert – aber was passiert, wenn ihr eine Datei kaputt macht? Oder wenn beide Partner gleichzeitig die gleiche Datei ändern?
Git löst beide Probleme: Es speichert jede Version eurer Dateien und hilft euch, gemeinsam an einem Projekt zu arbeiten.
In dieser Übung richtet ihr Git für euer bestehendes Website-Projekt ein und lernt den grundlegenden Workflow kennen. Dabei arbeitet ihr mit drei Orten:
Installiert Git auf eurem eigenen Laptop. Je nach Betriebssystem unterscheidet sich die Vorgehensweise:
git --version
git --version
Falls Git noch nicht installiert ist, bietet macOS automatisch die Installation der Xcode Command Line Tools an. Bestätigt die Installation und wartet, bis sie abgeschlossen ist.
Gebt die folgenden Befehle im Terminal bzw. in Git Bash ein. Ersetzt dabei Name und E-Mail durch eure eigenen Daten:
git config --global user.name "Euer Name"
git config --global user.email "name@stud.ph-weingarten.de"
git config --global init.defaultBranch main
Hinweis für Windows: Verwendet für alle folgenden Git-Befehle Git Bash, nicht die normale Eingabeaufforderung (CMD) oder PowerShell. Git Bash versteht die gleichen Befehle wie das Terminal auf macOS und Linux.
Forgejo ist eine Plattform zur gemeinsamen Verwaltung von Git-Projekten – ähnlich wie GitHub, aber auf unserem eigenen Server.
cat ~/.ssh/id_ed25519.pub
cat ~/.ssh/id_ed25519.pub
ssh -T git@git.md-phw.de
Wenn alles funktioniert, erscheint eine Willkommensnachricht mit eurem Benutzernamen.
Eure Website liegt bereits auf dem Server. Jetzt bringt ihr sie unter Git-Versionsverwaltung.
git config --global user.name "Euer Name"
git config --global user.email "name@stud.ph-weingarten.de"
git config --global init.defaultBranch main
git config --global core.editor nano
.gitignore-Datei. Diese teilt Git mit, welche Dateien nicht versioniert werden sollen:cd ~/public_html
nano .gitignore
Tragt folgende Zeilen ein und speichert mit Strg+O, Enter, Strg+X:
*.save
*.swp
*~
.DS_Store
git init
git add .
git status
git commit -m "Erste Version der Website"
git status zeigt euch, welche Dateien zum Commit vorgemerkt wurden. Prüft, ob alle erwarteten Dateien dabei sind.
Jetzt verbindet ihr euer lokales Repository auf dem Server mit Forgejo, damit eure Dateien online gesichert sind.
eis-websitessh-keygen -t ed25519 -C "isaX@edumake.de"
Bestätigt den Speicherort mit Enter und lasst die Passphrase leer (einfach zweimal Enter drücken). Ersetzt isaX durch euren Account-Namen.
cat ~/.ssh/id_ed25519.pub
cd ~/public_html
git remote add origin git@git.md-phw.de:EUER-USERNAME/eis-website.git
git push -u origin main
Wichtig: Ersetzt EUER-USERNAME durch euren Forgejo-Benutzernamen!
Jetzt holt ihr euch das Projekt auf euren Laptop. Beide Tandempartner führen dies auf ihrem eigenen Gerät aus.
git clone git@git.md-phw.de:EUER-USERNAME/eis-website.git
cd eis-website
ls
Alle Dateien vom Server sollten jetzt auf eurem Laptop sein!
index.html ergänzen):git add index.html
git commit -m "Kommentar in index.html ergaenzt"
git push
cd ~/public_html
git pull
https://isaN.edumake.de – die Änderung sollte jetzt live sein!Übt den gemeinsamen Workflow mit eurem Tandempartner. Merkt euch das Mantra: Immer erst pull, dann bearbeiten, dann push!
impressum.html auf dem eigenen Laptop:git pull
# impressum.html bearbeiten...
git add impressum.html
git commit -m "Impressum aktualisiert"
git push
git pull
kontakt.html:# kontakt.html bearbeiten...
git add kontakt.html
git commit -m "Kontaktseite erweitert"
git push
git pull – die Änderung von Partner B ist da!git pull ausführen und die Website prüfen.Was passiert, wenn beide Partner die gleiche Stelle in einer Datei ändern? Git erkennt den Konflikt und ihr müsst ihn manuell lösen.
<title> in index.html und pusht:git pull
# <title> in index.html ändern, z.B. "Unsere Website - Partner A"
git add index.html
git commit -m "Title geaendert (Partner A)"
git push
<title> in index.html – ohne vorher zu pullen!# <title> in index.html ändern, z.B. "Unsere Website - Partner B"
git add index.html
git commit -m "Title geaendert (Partner B)"
git push
Der push von Partner B wird abgelehnt (rejected)! Git schützt euch davor, Änderungen des anderen zu überschreiben.
git pull
Die Datei index.html enthält jetzt Konfliktmarkierungen:
<<<<<<< HEAD
<title>Unsere Website - Partner B</title>
=======
<title>Unsere Website - Partner A</title>
>>>>>>> ...
<<<<<<<, =======, >>>>>>>) und behaltet die gewünschte Version.git add index.html
git commit -m "Konflikt im Title geloest"
git push
git pull – der Konflikt ist gelöst, beide haben die gleiche Version.Erstellt gemeinsam eine neue Seite team.html mit einem Steckbrief pro Person.
img/-Ordner.
team.html mit der Grundstruktur und dem eigenen Steckbrief (Name, Avatar-Bild, kurzer Text):git add team.html img/
git commit -m "Team-Seite mit Steckbrief Partner A"
git push
git pull
# Eigenen Steckbrief in team.html ergänzen, Avatar in img/ speichern
git add team.html img/
git commit -m "Steckbrief Partner B ergaenzt"
git push
index.html einen Link zur neuen Team-Seite in der Navigation.git pull – prüft die Team-Seite unter https://isaN.edumake.de/team.html| Erstmalig einrichten | |
|---|---|
git init | Neues Repository im aktuellen Ordner anlegen |
git clone URL | Repository von Forgejo herunterladen |
git remote add origin URL | Forgejo-Verbindung einrichten |
| Täglicher Workflow | |
git pull | Neueste Version von Forgejo holen |
git status | Änderungen anzeigen |
git add DATEI | Datei für den nächsten Commit vormerken |
git commit -m "..." | Änderungen als neue Version speichern |
git push | Commits an Forgejo senden |
| Nützlich | |
git log --oneline | Versionsgeschichte kompakt anzeigen |
git diff | Änderungen im Detail anzeigen |