Skip to content

About

Hausaufgabe zu Git-Branches, Merge, Rebase und einem Bash-Support-Tool

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🚀 Git Shell Hausaufgabe

Shell Script Git Status

Hausaufgabe zu Git-Branches, Merge, Rebase und einem Bash-Support-Tool

📋 Thema • ⚙️ Installation • 📖 Verwendung • 🔧 Git-Befehle • ❓ Theorie


📋 Thema

Dieses Repository enthält ein kleines Bash-Skript für einfache Aufgaben im IT-Support. Das Skript begrüßt den Benutzer mit seinem Namen und bietet ein Menü mit folgenden Aktionen:

  • 💻 Systeminformationen mit uname -a anzeigen
  • 💾 Speicherplatz mit df -h prüfen
  • 🚪 Programm beenden

Es ist eine praktische Übung zu den folgenden Git-Konzepten:

  • 🌿 Branches erstellen und wechseln
  • 🔀 Merging von Branches
  • 📝 Theoretischer Vergleich von Merge und Rebase
  • ⚠️ Merge-Konflikte verstehen und lösen

⚙️ Installation

Voraussetzungen

  • Bash Shell
  • Git installiert
  • Grundlegende Terminalkenntnis

Schritte

  1. Repository klonen:
git clone https://github.com/harry0203vn/git-shell-hausaufgabe.git
cd git-shell-hausaufgabe
  1. Skript ausführbar machen:
chmod +x support_tool.sh

📖 Verwendung

Basis-Ausführung

./support_tool.sh

Ablauf

  1. Das Skript fragt nach Ihrem Namen 👤
  2. Es begrüßt Sie persönlich 👋
  3. Ein Menü mit 3 Optionen wird angezeigt:
    • Option 1: Systeminformationen anzeigen
    • Option 2: Speicherplatz prüfen
    • Option 3: Programm beenden

Beispiel

IT Support Tool
===============
Dieses Skript hilft bei einfachen Support-Aufgaben.
Bitte geben Sie Ihren Namen ein: Max
Hallo Max, willkommen im IT Support Tool.

Bitte wählen Sie eine Aufgabe:
1) Systeminformationen anzeigen
2) Speicherplatz prüfen
3) Programm beenden

Systeminformationen:
<Ausgabe von uname -a>

Hinweise

  • ✅ Gültige Auswahlmöglichkeiten: 1, 2, 3
  • ❌ Andere Eingaben führen zu einer Fehlermeldung
  • 🔁 Für eine neue Aktion wird das Skript erneut gestartet

🔧 Verwendete Git-Befehle

Befehl Beschreibung
git clone 📥 Repository auf den lokalen Rechner kopieren
git status 🔍 Aktuellen Zustand des Arbeitsverzeichnisses prüfen
git add ➕ Änderungen für einen Commit vormerken
git commit 💾 Einen neuen Stand in der Historie speichern
git push 🚀 Commits und Branches zu GitHub hochladen
git pull ⬇️ Änderungen von GitHub herunterladen
git branch 🌿 Branches anzeigen und verwalten
git checkout 🔄 Zwischen Branches wechseln oder neue erstellen
git merge 🔀 Änderungen eines Branches zusammenführen

❓ Theoriefragen

1. Was ist ein Merge-Konflikt?

Ein Merge-Konflikt entsteht, wenn Git Änderungen aus verschiedenen Branches nicht automatisch zusammenführen kann. Git hält den Merge an und verlangt, dass ein Mensch entscheidet, welche Versionen behalten oder kombiniert werden sollen.

2. Warum entsteht ein Merge-Konflikt meistens dann, wenn zwei Branches dieselbe Stelle in derselben Datei verändert haben?

Wenn zwei Branches dieselben Zeilen unterschiedlich verändern, kann Git nicht erkennen, welche Änderung korrekt ist. Beide Versionen sind aus Sicht von Git gültig, deshalb ist eine manuelle Entscheidung notwendig.

3. Warum haben Sie in dieser Aufgabe keinen Merge-Konflikt bekommen?

Die Branches wurden in der vorgegebenen Reihenfolge erstellt und zuerst in master gemergt. Jeder neue Branch basierte auf dem aktuellen Stand von master, sodass keine widersprechenden Änderungen entstanden.

4. Was zeigt Git in einer Datei an, wenn ein Merge-Konflikt entsteht?

Git fügt spezielle Konfliktmarkierungen in die betroffene Datei ein. Zwischen diesen Markierungen stehen die unterschiedlichen Versionen der beiden Branches:

<<<<<<< HEAD
Version aus aktuellem Branch
=======
Version aus zusammenzuführendem Branch
>>>>>>> branch-name

5. Welche Schritte muss man grundsätzlich durchführen, um einen Merge-Konflikt sauber zu lösen?

Zuerst öffnet man die betroffenen Dateien und entscheidet, welche Änderungen bleiben oder kombiniert werden sollen. Danach entfernt man die Konfliktmarkierungen und testet das Ergebnis. Abschließend markiert man die Dateien mit git add als gelöst und erstellt den Merge-Commit.

  1. 📂 Betroffene Dateien öffnen
  2. 🤔 Entscheiden: welche Änderungen behalten/kombinieren?
  3. ✂️ Konfliktmarkierungen entfernen
  4. ✅ Änderungen testen
  5. 📝 Als gelöst markieren: git add <datei>
  6. 💾 Merge-Commit erstellen: git commit

6. Warum sollte man nach dem Lösen eines Merge-Konflikts das Programm oder Skript noch einmal testen?

Beim manuellen Zusammenführen können versehentlich Zeilen gelöscht, doppelt übernommen oder falsch kombiniert werden. Ein erneuter Test zeigt, ob das Skript weiterhin korrekt funktioniert und die Lösung fachlich sinnvoll ist. ✅

7. Was macht git merge?

git merge führt die Änderungen eines Branches in den aktuell ausgecheckten Branch ein. Wenn beide Branches eigene neue Commits besitzen und kein Fast-forward möglich ist, erstellt Git normalerweise einen Merge-Commit.

git checkout master
git merge feature-branch

8. Was macht git rebase?

git rebase setzt die Commits eines Branches auf einen neuen Ausgangspunkt. Die betroffenen Commits werden neu geschrieben und erhalten neue Commit-IDs.

git checkout feature-branch
git rebase master

9. Was ist der wichtigste Unterschied zwischen merge und rebase?

merge verbindet zwei Entwicklungsverläufe und bewahrt ihre bestehende Historie. rebase schreibt die Commits eines Branches so um, als wären sie direkt auf dem aktuellen Ziel-Branch entstanden.

Aspekt Merge Rebase
📊 Historie Verzweigungen bleiben sichtbar Lineare Historie
💾 Commits Merge-Commit wird erstellt Commits werden umgeschrieben
🔍 Lesbarkeit Zeigt wann Branch gemergt wurde Saubere, lineare Abfolge
⚠️ Risiko Niedriger Höher bei geteilten Branches
👥 Team Sicherer für Zusammenarbeit Besser für lokale Commits

10. Warum bleibt bei merge oft besser sichtbar, wann ein Branch zusammengeführt wurde?

Ein Merge-Commit dokumentiert ausdrücklich, wann und wie zwei Branches zusammengeführt wurden. Die Verzweigung bleibt in der Git-Historie sichtbar.

11. Warum kann rebase die Git-Historie sauberer aussehen lassen?

Durch Rebase werden Commits hintereinander auf eine Linie gesetzt. Die Historie enthält weniger zusätzliche Merge-Commits und lässt sich leichter von oben nach unten lesen.

12. Warum sollte man mit rebase vorsichtig sein, wenn ein Branch bereits mit anderen geteilt wurde?

Rebase verändert bestehende Commits und ihre IDs. Wenn andere Personen bereits darauf weitergearbeitet haben, können doppelte Commits, schwierige Konflikte und ein erzwungener Push entstehen. Deshalb sollte Rebase möglichst nur auf lokalen, noch nicht geteilten Branches verwendet werden.

13. Wann würden Sie eher merge verwenden?

Ich würde merge verwenden, wenn ein Branch bereits geteilt wurde oder die tatsächliche Entwicklungsgeschichte erhalten bleiben soll. Für die Zusammenarbeit im Team ist das oft die sicherere und nachvollziehbarere Wahl.

✅ merge verwenden bei:

  • 👥 Geteilten Branches
  • 📚 Entwicklung, wo Historie wichtig ist
  • 🤝 Team-Zusammenarbeit
  • 🔒 Remote Branches

14. Wann könnte rebase sinnvoll sein?

Rebase kann sinnvoll sein, um einen eigenen, noch nicht geteilten Feature-Branch auf den neuesten Stand von master zu bringen. So kann man lokale Commits vor dem Teilen ordnen und eine lineare Historie erzeugen.

✅ rebase sinnvoll bei:

  • 🔐 Lokalen, noch nicht geteilten Branches
  • 📋 Vor dem Veröffentlichung
  • 🧹 Saubere lineare Historie gewünscht
  • 🎯 Feature-Branches auf aktuellen Stand bringen

📁 Projektstruktur

git-shell-hausaufgabe/
├── support_tool.sh      # 🔧 Hauptskript
└── README.md            # 📖 Diese Datei

🎯 Lernziele

Nach dieser Hausaufgabe verstehen Sie:

  • ✅ Wie Git Branches funktionieren
  • ✅ Unterschiede zwischen merge und rebase
  • ✅ Wie Merge-Konflikte entstehen und gelöst werden
  • ✅ Best Practices für Zusammenarbeit
  • ✅ Praktische Bash-Programmierung

💡 Tipps & Best Practices

Allgemein

  • 🌿 Verwenden Sie aussagekräftige Branch-Namen: feature/feature-name, bugfix/issue-name
  • 📝 Schreiben Sie aussagekräftige Commit-Messages
  • 🔍 Nutzen Sie git log um die Historie zu verstehen

Bei Merge-Konflikten

  • 🧠 Verstehen Sie den Konflikt vollständig
  • 💬 Kommunizieren Sie mit Ihrem Team
  • 🧪 Testen Sie gründlich nach der Lösung

Rebase

  • ⚠️ Niemals auf öffentlichen/geteilten Branches rebasen!
  • 🔐 Nur auf lokalen Entwicklungs-Branches verwenden
  • 📌 Stellen Sie sicher, dass niemand anderes auf den Commits arbeitet

🔗 Hilfreiche Ressourcen


📝 Lizenz

Für dieses Übungsrepository wurde derzeit keine separate Lizenzdatei hinzugefügt.


Erstellt von: harry0203vn
Letztes Update: 2026-08-25
Status: ✅ Aktiv

⭐ Wenn dieses Projekt hilfreich war, geben Sie gerne einen Star!

About

Hausaufgabe zu Git-Branches, Merge, Rebase und einem Bash-Support-Tool

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages