In diesem Leitfaden zeige ich dir, wie du Git und GitHub für dein Portfolio-Projekt nutzen kannst. Git ist ein unverzichtbares Werkzeug für die Versionskontrolle deiner Code-Dateien, während GitHub dir ermöglicht, dein Projekt zu veröffentlichen und mit anderen zu teilen.
Stell dir vor, du schreibst an einem Jupyter Notebook für deine Datenanalyse. Nach einigen Tagen Arbeit merkst du, dass dein Code nicht mehr funktioniert. Du hast aber keine Ahnung, was genau du verändert hast und möchtest zu einer älteren, funktionierenden Version deines Codes zurückkehren. Vielleicht kennst du auch die folgende Situation: Du speicherst deine Dateien als projekt.ipynb, projekt_final.ipynb, projekt_final_v2.ipynb und irgendwann verlierst du den Überblick.
An dieser Stelle kommt Git ins Spiel. Git ist ein Versionskontrollsystem, das es dir ermöglicht, Änderungen an deinen Dateien zu verfolgen, frühere Versionen wiederherzustellen und mit anderen zusammenzuarbeiten. Mit Git erstellst du regelmäßig "Schnappschüsse" (Commits) deines Projekts. Diese Schnappschüsse kannst du jederzeit ansehen und bei Bedarf zu ihnen zurückkehren.
Git ist ein dezentrales Versionskontrollsystem, das ursprünglich für die Entwicklung des Linux-Kernels entwickelt wurde. Es erlaubt dir:
- Änderungen zu verfolgen: Git dokumentiert, wer wann welche Änderungen vorgenommen hat.
- Zusammenarbeit: Mehrere Personen können gleichzeitig am selben Projekt arbeiten, ohne sich gegenseitig zu stören.
- Versionen zu verwalten: Du kannst zu jedem früheren Zustand deines Projekts zurückkehren.
- Parallel zu arbeiten: Du kannst an verschiedenen Funktionen gleichzeitig arbeiten, ohne das Hauptprojekt zu beeinträchtigen.
GitHub ist eine webbasierte Plattform, die Git als Grundlage nutzt. Es bietet zusätzliche Funktionen wie:
- Remote Repositories: Ein zentraler Ort, an dem dein Code gespeichert wird und auf den alle Teammitglieder zugreifen können.
- Issues und Pull Requests: Werkzeuge zur Diskussion von Änderungen und Problemen.
- Projektmanagement: Kanban-Boards, Meilensteine und mehr zur Organisation deiner Arbeit.
- Social Coding: Andere Entwickler können dein Projekt sehen, "forken" (kopieren) und dazu beitragen.
GitHub ist wie ein soziales Netzwerk für Code. Es erleichtert die Zusammenarbeit und ist ideal, um dein Portfolio zu präsentieren.
Git ist ein Kommandozeilenprogramm, das du auf deinem Computer installieren musst. Obwohl wir Git hauptsächlich über die grafische Oberfläche von VS Code verwenden werden, ist es wichtig, dass Git auf deinem System installiert ist.
Du kannst Git unter Windows mit dem eingbauten Paketmanager winget installieren:
Öffne dazu die PowerShell und führe den folgenden Befehl aus:
winget install --id Git.Git -e --source wingetSollte das nicht funktionieren kannst du Git auch manuell installieren:
- Besuche die offizielle Git-Website: https://git-scm.com/download/win
- Lade den Installer herunter und führe ihn aus.
- Die Standardeinstellungen sind in der Regel in Ordnung. Achte darauf, dass "Git Bash" und "Git GUI" ausgewählt sind und das git zum PATH hinzugefügt wird.
- Die einfachste Methode ist die Installation über Homebrew:
brew install git
- Alternativ kannst du Git auch von der offiziellen Website herunterladen: https://git-scm.com/download/mac
Verwende den Paketmanager deiner Distribution:
# Für Ubuntu/Debian
sudo apt-get update
sudo apt-get install git
# Für Fedora
sudo dnf install gitNach der Installation kannst du überprüfen, ob Git korrekt installiert ist:
git --versionBevor du Git verwendest, solltest du deinen Namen und deine E-Mail-Adresse konfigurieren. Dies ist wichtig, da Git diese Informationen bei jedem Commit speichert.
git config --global user.name "Dein Name"
git config --global user.email "deine.email@example.com"Bevor wir mit den ersten Befehlen starten, ist es wichtig, einige grundlegende Konzepte zu verstehen:
Ein Repository (oder kurz "Repo") ist ein Projekt, das von Git verwaltet wird. Es enthält alle Dateien des Projekts sowie die vollständige Versionshistorie. Ein Repository kann lokal auf deinem Computer oder remote auf einem Server wie GitHub existieren.
Ein Commit ist ein "Schnappschuss" deines Projekts zu einem bestimmten Zeitpunkt. Jeder Commit hat eine eindeutige ID und eine Nachricht, die beschreibt, welche Änderungen vorgenommen wurden.
Ein Branch ist eine parallele Version deines Projekts. Der Hauptbranch wird üblicherweise als "main" (früher "master") bezeichnet. Branches ermöglichen es dir, an neuen Funktionen zu arbeiten, ohne den Hauptcode zu beeinflussen.
Beim Mergen werden Änderungen aus einem Branch in einen anderen übernommen. Dies geschieht typischerweise, wenn eine Funktion fertiggestellt ist und in den Hauptbranch integriert werden soll.
Das Klonen eines Repositories erstellt eine lokale Kopie eines Remote-Repositories auf deinem Computer.
"Push" sendet deine lokalen Änderungen (Commits) an das Remote-Repository (z.B. auf GitHub). "Pull" holt Änderungen aus dem Remote-Repository und integriert sie in deine lokale Kopie.
VS Code hat eine hervorragende Git-Integration, die es dir ermöglicht, die meisten Git-Aktionen direkt aus der grafischen Oberfläche auszuführen.
- Öffne deinen Projektordner in VS Code.
- Klicke auf das Source-Control-Symbol in der linken Seitenleiste (es sieht aus wie eine Verzweigung).
- Klicke auf "Initialize Repository" oder drücke auf "Publish to GitHub".
Alternativ kannst du ein Repository auch über die Kommandozeile erstellen:
cd mein-projekt
git init- Nachdem du Änderungen an deinen Dateien vorgenommen hast, werden diese in VS Code im Source-Control-Tab angezeigt.
- Klicke auf das "+" neben den geänderten Dateien, um sie zu "stagen" (für den nächsten Commit vorzumerken).
- Gib eine aussagekräftige Commit-Nachricht ein, die beschreibt, was du geändert hast.
- Klicke auf den Haken (✓) oder drücke Ctrl+Enter, um die Änderungen zu committen.
Über die Kommandozeile würde das so aussehen:
git add . # Alle Änderungen stagen
git commit -m "Beschreibung der Änderungen" # Änderungen committenUm dein lokales Repository mit GitHub zu verbinden, musst du ein Repository auf GitHub erstellen und es als "Remote" hinzufügen.
In VS Code:
- Öffne die Command Palette (Ctrl+Shift+P).
- Gib "Git: Add Remote" ein und wähle diese Option aus.
- Füge die URL deines GitHub-Repositories ein (z.B.
https://github.com/dein-username/dein-repo.git). - Gib einen Namen für den Remote ein (normalerweise "origin").
Über die Kommandozeile:
git remote add origin https://github.com/dein-username/dein-repo.gitNachdem du Änderungen committet hast, kannst du sie zu GitHub pushen:
In VS Code:
- Klicke auf die Schaltfläche "Publish Branch" oder "Sync" in der Statusleiste unten links.
Über die Kommandozeile:
git push -u origin main # Beim ersten Push
git push # Bei nachfolgenden PushesWenn andere Änderungen am Repository vorgenommen haben, musst du diese zu deiner lokalen Kopie hinzufügen:
In VS Code:
- Klicke auf die Schaltfläche "Sync" in der Statusleiste oder im Source-Control-Tab.
Über die Kommandozeile:
git pullHier ist ein typischer Workflow für dein Portfolio-Projekt:
-
Repository einrichten:
- Erstelle ein neues Repository auf GitHub.
- Klone es auf deinen Computer oder initialisiere ein neues lokales Repository und verbinde es mit GitHub.
-
Projekte strukturieren:
- Erstelle eine klare Ordnerstruktur für dein Projekt.
- Füge eine README.md-Datei hinzu, die dein Projekt beschreibt.
- Denke an eine
.gitignore-Datei, um nicht benötigte Dateien auszuschließen (wie den.venv-Ordner).
-
Regelmäßig committen:
- Mache kleine, häufige Commits, die jeweils eine Änderung oder eine Funktion abschließen.
- Schreibe aussagekräftige Commit-Nachrichten.
-
Mit Branches arbeiten (fortgeschritten):
- Nutze Branches für neue Funktionen oder Experimente.
- Merge sie zurück in den Hauptbranch, wenn du zufrieden bist.
-
Regelmäßig pushen und pullen:
- Pushe deine Änderungen regelmäßig zu GitHub, um eine Sicherung zu haben.
- Pulle Änderungen, wenn du an mehreren Computern arbeitest oder mit anderen zusammenarbeitest.
Die .gitignore-Datei ist eine wichtige Komponente deines Git-Projekts. Sie gibt an, welche Dateien und Ordner Git ignorieren soll. Das ist besonders nützlich für:
- Große Dateien, die nicht ins Repository gehören
- Generierte Dateien, die jeder selbst erzeugen kann
- Vertrauliche Informationen wie API-Schlüssel oder Passwörter
- Umgebungsspezifische Dateien wie der
.venv-Ordner
Ein Beispiel für eine .gitignore-Datei für ein Python-Datenprojekt:
# Python virtual environment
.venv/
venv/
ENV/
# Python cache files
__pycache__/
*.py[cod]
*$py.class
# Jupyter Notebook
.ipynb_checkpoints
# Distribution / packaging
dist/
build/
*.egg-info/
# Local configuration
.env
config.local.json
# VS Code settings
.vscode/
# OS generated files
.DS_Store
Thumbs.db
VS Code erstellt normalerweise automatisch eine .gitignore-Datei, wenn du ein neues Repository initialisierst, aber du kannst sie auch manuell erstellen und bearbeiten.
Hier sind einige Best Practices für die Arbeit mit Git:
-
Committen und pushen nicht vergessen: Mache es dir zur Gewohnheit, am Ende jeder Arbeitssitzung zu committen und zu pushen.
-
Aussagekräftige Commit-Nachrichten: Eine gute Commit-Nachricht erklärt, WAS geändert wurde und WARUM.
-
Kleine, fokussierte Commits: Jeder Commit sollte eine logische Einheit sein, die eine bestimmte Änderung oder Funktion abschließt.
-
Branches für neue Funktionen: Wenn du an einer neuen Funktion arbeitest, erstelle einen separaten Branch dafür.
-
Regelmäßige Pulls: Wenn du mit anderen zusammenarbeitest, pulle regelmäßig, um Konflikte zu vermeiden.
-
README.md pflegen: Halte deine README.md-Datei aktuell. Sie ist das Erste, was andere sehen, wenn sie dein Projekt auf GitHub besuchen.
Merge-Konflikte treten auf, wenn zwei Personen dieselbe Datei an derselben Stelle geändert haben. Git weiß dann nicht, welche Änderung es behalten soll.
In VS Code werden Merge-Konflikte direkt im Editor angezeigt, und du kannst auswählen, welche Änderung du behalten möchtest. Du kannst auch beide Änderungen kombinieren, wenn das sinnvoll ist.
Wenn du eine Datei versehentlich gestaged hast, kannst du sie unstagen:
In VS Code:
- Klicke auf das "-" neben der Datei im Source-Control-Tab.
Über die Kommandozeile:
git reset HEAD dateinameWenn du Änderungen an einer Datei rückgängig machen möchtest:
In VS Code:
- Rechtsklick auf die Datei im Source-Control-Tab.
- Wähle "Discard Changes".
Wenn du zu einem früheren Zustand deines Projekts zurückkehren möchtest:
In VS Code:
- Öffne die Commit-Historie im Source-Control-Tab.
- Rechtsklick auf den gewünschten Commit.
- Wähle "Checkout".
Über die Kommandozeile:
git log # Zeigt die Commit-Historie an
git checkout commit-hash # Ersetze commit-hash durch die ID des CommitsGitHub ist mehr als nur ein Ort, um deinen Code zu speichern. Es kann auch als Portfolio dienen, um deine Fähigkeiten potenziellen Arbeitgebern zu präsentieren.
Die README.md-Datei ist das Herzstück deines Projekts auf GitHub. Sie sollte enthalten:
- Projekttitel und kurze Beschreibung
- Motivation: Warum hast du dieses Projekt erstellt?
- Technologien: Welche Technologien und Bibliotheken hast du verwendet?
- Installation: Wie kann jemand dein Projekt lokal ausführen?
- Projektergebnisse: Was hast du herausgefunden?
- Schlussfolgerungen: Was sind deine Erkenntnisse?
- Zukünftige Arbeiten: Was könntest du in Zukunft verbessern?
GitHub ermöglicht es dir, ein spezielles Repository mit deinem Benutzernamen zu erstellen (z.B. dein-username/dein-username), dessen README.md auf deinem Profil angezeigt wird. Dies ist ein großartiger Ort, um dich, deine Fähigkeiten und deine besten Projekte vorzustellen.
Mit GitHub Pages kannst du statische Websites direkt aus deinem Repository erstellen. Das ist besonders nützlich für Data-Science-Projekte, bei denen du Visualisierungen oder interaktive Dashboards teilen möchtest.
Du hast nun die Grundlagen von Git und GitHub kennengelernt. Es gibt noch viele weitere Funktionen und Möglichkeiten, die du erkunden kannst, aber das hier Beschriebene sollte ausreichen, um dein Portfolio-Projekt erfolgreich zu verwalten. Falls du tiefer in Git einsteigen möchtest, empfehle ich dir die offizielle Git-Dokumentation oder das kostenlose Buch Pro Git.
Ich wünsche dir viel Erfolg mit deinem Portfolio-Projekt und freue mich darauf, es auf GitHub zu sehen!