Lab 20: Remotes (Terminal)¶
In dieser Übung lernst du, wie du mit Remote-Repositories arbeitest: Pushen, Pullen, Fetch und den Umgang mit Remote-Branches.
Das Setup erstellt ein lokales Bare-Repository (remote.git/), das als Remote
dient, sowie einen zweiten Klon (kollege/), mit dem du Änderungen eines
Kollegen simulierst.
Vorbereitung¶
Öffne das Terminal im Verzeichnis labs/20-remotes/exercise.
Der Remote origin ist bereits konfiguriert. Prüfe das mit:
git remote -v
Es handelt sich um einen Remote auf deinem eigenen Computer. Deswegen siehst du nun keine URL, sondern nur eine Referenz auf ein anderes Verzeichnis.
Phase 1: Pushen¶
- Der Remote kennt den Branch noch nicht. Pushe den
master-Branch:
git push -u origin master
Die Option -u setzt das Tracking, sodass git push und git pull danach
ohne Argumente funktionieren.
- Erstelle eine neue Datei, stage und committe sie:
Bash:
echo "wichtige Info" > info.txt
PowerShell:
Set-Content info.txt "wichtige Info"
Dann:
git add info.txt
git commit -m "Add info file"
-
Prüfe den Status mit
git status. Git zeigt dir: "Your branch is ahead of 'origin/master' by 1 commit." -
Pushe den neuen Commit:
git push
Phase 2: Änderungen auf dem Remote simulieren¶
Um zu verstehen, wie Fetch und Pull funktionieren, simulieren wir Änderungen, die ein Kollege auf dem Remote gemacht hat.
- Wechsle in den vorbereiteten Kollegen-Klon und mache dort Änderungen:
Bash:
cd ../kollege
git pull
echo "Nachricht vom Kollegen" > nachricht.txt
git add nachricht.txt
git commit -m "Add message from colleague"
git push
cd ../exercise
PowerShell:
cd ..\kollege
git pull
Set-Content nachricht.txt "Nachricht vom Kollegen"
git add nachricht.txt
git commit -m "Add message from colleague"
git push
cd ..\exercise
-
Zurück im
exercise-Verzeichnis:git statuszeigt noch nichts Neues. Dein lokales Repo weiß noch nichts von der Änderung. -
Hole die Informationen über neue Commits, ohne sie zu mergen:
git fetch
-
Prüfe mit
git status. Git zeigt: "Your branch is behind 'origin/master' by 1 commit." Die Änderung ist bekannt, aber noch nicht lokal integriert. -
Integriere die Änderung:
git pull
Prüfe: nachricht.txt ist jetzt da.
Phase 3: Remote-Branches¶
-
Wechsle zurück in den Kollegen-Klon und erstelle einen neuen Branch:
Bash:
cd ../kollege git switch -c feature/remote-test echo "Feature-Inhalt" > feature.txt git add feature.txt git commit -m "Add feature file" git push -u origin feature/remote-test cd ../exercisePowerShell:
cd ..\kollege git switch -c feature/remote-test Set-Content feature.txt "Feature-Inhalt" git add feature.txt git commit -m "Add feature file" git push -u origin feature/remote-test cd ..\exercise -
Hole die neuen Branch-Informationen:
git fetch -
Zeige alle Branches (lokal und remote):
git branch -aDu siehst
remotes/origin/feature/remote-test. -
Wechsle auf den Remote-Branch:
git switch feature/remote-testGit erstellt automatisch einen lokalen Tracking-Branch.
-
Prüfe:
feature.txtist jetzt lokal vorhanden.
Zusammenfassung¶
| Befehl | Beschreibung |
|---|---|
git remote -v |
Konfigurierte Remotes anzeigen |
git push -u origin |
Branch pushen und Tracking einrichten |
git push |
Lokale Commits zum Remote senden |
git fetch |
Remote-Infos holen, ohne lokal etwas zu ändern |
git pull |
Fetch + Merge in den aktuellen Branch |
git branch -a |
Alle Branches (lokal + remote) anzeigen |
git switch <branch> |
Auf Remote-Branch wechseln (erstellt Tracking) |