Getting Started
Git-Zugang einrichten — für jede IDE und jedes Git-Tool. Schritte 1–4 einmalig pro Rechner.
1. Git installieren
Git ist die Basis — alles andere baut darauf auf.
- Windows: Git for Windows → Installer mit Defaults durchklicken (inkl. Git Credential Manager).
- macOS:
brew install gitoder Xcode-CLI-Tools:xcode-select --install - Linux (Debian/Ubuntu):
sudo apt install git - Linux (RHEL/Fedora):
sudo dnf install git - Arch:
sudo pacman -S git
git --version # sollte >= 2.30 zeigen
2. Git konfigurieren
git config --global user.name "Dein Name"
git config --global user.email "du@example.com"
git config --global init.defaultBranch main
git config --global pull.ff only
git config --global core.autocrlf input # Windows: true
# Optional: Editor setzen
git config --global core.editor "code --wait" # VS Code
# git config --global core.editor "vim"
# git config --global core.editor "nano"
# git config --global core.editor "subl -n -w" # Sublime
3. SSH-Key erstellen
ssh-keygen -t ed25519 -C "du@example.com"
Enter bei allen Abfragen. Passphrase ist optional (aber empfohlen). Public-Key ausgeben:
# macOS / Linux
cat ~/.ssh/id_ed25519.pub
# Windows (PowerShell)
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
Die Zeile beginnt mit ssh-ed25519 AAAA…. Das ist der Public-Key — der darf geteilt werden. Der Private-Key id_ed25519 bleibt auf deinem Rechner.
4. SSH-Key im Profil hinterlegen
- Mein Profil öffnen
- Public-Key ins Feld „SSH Public Key" einfügen → Speichern
- Admin übernimmt deinen Key in die
authorized_keysdesgit-Users (Export, typischerweise per Cron automatisiert) - Test:
ssh -T git@wiki.mnhub.net(sollte ohne Passwort Verbindung aufbauen)
write-Scope erzeugen und ihn als Passwort beim ersten Push eingeben. Git Credential Manager merkt sich das.
5. Dein Tool einrichten
Wähle dein Lieblings-Tool — der Workflow ist überall gleich (Stage → Commit → Push), nur das UI unterscheidet sich.
Ohne Git — direkter Browser-Upload
Wenn du gar kein Git installieren willst (z. B. für einmalige Uploads, Designer ohne CLI-Zugang, oder schnell ein Asset hinterlegen), kannst du Dateien direkt hochladen:
- Zum Repo gehen → Tab Dateien
- „Dateien hochladen"-Button oben rechts
- Dateien per Drag-&-Drop in die Zone ziehen — oder einen ganzen Ordner auswählen (Ordnerstruktur bleibt erhalten)
- Target-Branch wählen, optional Unterordner angeben
- Commit-Message eintragen → Hochladen & Committen
git pull bezogen werden. Max. 32 MB pro Datei. Protected Branches (z. B. main) sind tabu — bitte in Feature-Branch uploaden.
Kommandozeile (universell)
Läuft überall, schnellste Kontrolle. Basis-Befehle:
git clone <url> # Repo klonen
git status # was hat sich geändert
git add <datei> # für Commit vormerken (= stage)
git add . # alle Änderungen stagen
git commit -m "Nachricht" # Commit erstellen
git push # zum Server senden
git pull # Server-Änderungen holen
git log --oneline -20 # letzte 20 Commits
git branch # Branches auflisten
git checkout -b feature/xy # neuen Branch anlegen & wechseln
git switch main # Branch wechseln (moderner)
VS Code
- VS Code installieren
- Empfohlene Extensions (Ctrl+Shift+X):
- GitLens — inline Blame, History, vieles mehr
- Git Graph — visueller Commit-Baum
- Git History — File-Log mit Diff
- Settings:
"git.autofetch": true,"git.confirmSync": false - Source-Control-Panel: Ctrl+Shift+G
- Commit-Message schreiben, Ctrl+Enter, dann „Sync" oben links
JetBrains IDEs (IntelliJ IDEA, PhpStorm, WebStorm, PyCharm, Rider, GoLand, CLion, RubyMine)
Git ist built-in, kein Plugin nötig.
File → New → Project from Version Control(oder Welcome-Screen → „Get from VCS")- URL einfügen, Ziel-Ordner wählen → Clone
- Im Editor: Version Control-Tabfenster unten (Alt+9)
- Commit: Ctrl+K · Push: Ctrl+Shift+K · Pull: Ctrl+T (Update Project)
- Branches: rechts unten in der Statusleiste (aktueller Branch-Name) → Menü
- History pro File: Rechtsklick → Git → Show History
Empfohlene Einstellungen unter Preferences → Version Control → Git:
- „Update method" → Rebase (sauberer Verlauf)
- „Auto-update if push of the current branch was rejected" aktivieren
Visual Studio (2019/2022, Windows)
Die große IDE von Microsoft — Git-Integration ist integriert seit 2019.
- Start-Fenster → Clone a repository
- Repository-Location: URL einfügen (HTTPS oder SSH)
- Path: lokaler Ordner → Clone
- Menüleiste: Git → Commit or Stash…
- Änderungen im Team-Explorer / Git-Changes-Fenster (Ctrl+0, G)
- Commit-Nachricht → Commit All → Push (Pfeil-hoch-Icon)
Branches: rechts unten in der Statusleiste. Merge/Rebase via Git → Manage Branches.
Android Studio
Basiert auf IntelliJ — dieselbe Git-UI.
- Welcome-Screen → Get from VCS → URL einfügen
- Commit: Ctrl/⌘+K · Push: Ctrl/⌘+Shift+K
- Ansonsten identisch zu JetBrains
Xcode (macOS)
Git ist seit Xcode 9 eingebaut.
- File → Clone… → URL einfügen
- Wenn SSH: Xcode fragt ggf. nach Schlüssel → auf hinterlegten
~/.ssh/id_ed25519zeigen - Source Control Navigator: ⌘+2
- Commit: Source Control → Commit… (⌥+⌘+C)
- Push: Source Control → Push… (⌥+⌘+P) — nur in Xcode-Target „Push to remote" muss aktiviert sein
Sublime Merge
Schneller, minimalistischer Git-Client von Sublime HQ.
- Sublime Merge installieren
- Repository → Clone Repository…
- Änderungen unten: Stage per Klick, Commit-Nachricht oben, Ctrl/⌘+Enter
- Push-Button rechts oben (oder Ctrl/⌘+Shift+P)
Sourcetree (Atlassian, kostenlos)
- Sourcetree installieren
- File → Clone / New… → URL + Pfad
- File-Status-Tab: Änderungen stagen (Pfeil hoch)
- Commit-Feld unten, Haken bei „Push changes immediately"
- Für SSH-Keys: Tools → Options → SSH-Client: OpenSSH (nicht PuTTY)
GitKraken
- GitKraken installieren (Free-Tier reicht für privat/öffentliche Repos; kommerziell kostenpflichtig)
- File → Clone Repo → URL + Pfad
- Graph-Ansicht zeigt alle Commits/Branches visuell
- Stage/Commit via Button-Leiste rechts; Push oben („↑" Icon)
Fork
Schneller Git-GUI für macOS und Windows.
- Fork installieren
- File → Clone… → URL + Pfad
- Working Copy: Staging links, Commit-Feld unten, Stage/Commit/Push selbsterklärend
Tower
Polished commercial Git-GUI (macOS, Windows).
- Tower (30-Tage-Trial)
- File → Clone… → URL + Pfad
- Working-Copy-View, drag-n-drop-Staging
TortoiseGit (Windows-Shell-Extension)
Integration in Windows-Explorer — Rechtsklick im Ordner gibt Git-Menü.
- TortoiseGit installieren
- Rechtsklick in leerem Ordner → Git Clone… → URL
- Rechtsklick in Arbeitsordner → Git Commit → -> "master"
- Push per Rechtsklick → TortoiseGit → Push…
- SSH-Key: Settings → Network → SSH Client auf Pfad zu
ssh.exe(kommt mit Git for Windows)
Eclipse (mit EGit)
- EGit ist ab Eclipse Luna eingebaut
- File → Import → Git → Projects from Git → Clone URI
- Window → Show View → Git Staging
- Änderungen in Unstaged, per Pfeil nach Staged, dann Commit-Message, „Commit and Push"
NetBeans
- Team → Git → Clone…
- URL, Repository-Folder, Username (falls HTTPS)
- Commit: Team → Commit…
- Push: Team → Remote → Push to Upstream
6. Repo klonen — URL bekommst du hier
Auf jeder Repo-Seite oben rechts: grüner Code-Button → HTTPS- oder SSH-URL kopieren.
# HTTPS (mit Personal Access Token als „Passwort")
git clone https://wiki.mnhub.net/git/REPO-SLUG.git
# SSH (mit hinterlegtem Public-Key)
git clone git@wiki.mnhub.net:REPO-SLUG.git
cd REPO-SLUG
7. Erster Commit + Push
Universell, funktioniert in jedem Tool:
- Datei ändern/anlegen
- Änderungen anzeigen lassen
- Stage (= „für den nächsten Commit markieren")
- Commit mit kurzer, aussagekräftiger Nachricht
- Push → Server bekommt die Commits
CLI-Äquivalent:
git add .
git commit -m "Was hast du geändert"
git push
8. Branches & Merge Requests
Nie direkt auf main pushen — immer erst einen Feature-Branch.
git checkout -b feature/foo
# ...arbeiten...
git push -u origin feature/foo
Dann im Wiki: Repo → Branches → dein Branch → + MR (Merge Request). Teamkollegen reviewen per Kommentar.
main) blockieren direkten Web-Edit und Web-Delete — Änderungen müssen via Feature-Branch + MR laufen. Direkt-Push per Git bleibt möglich (kann später per server-seitigem Hook auch blockiert werden).
Troubleshooting
„Permission denied (publickey)" beim SSH-Push
- SSH-Key in Profil hinterlegt?
- Admin hat
authorized_keysaktualisiert? - Test:
ssh -Tv git@wiki.mnhub.net— das-vzeigt welcher Key probiert wurde - Bei mehreren Keys:
~/.ssh/configanpassen (IdentityFile ~/.ssh/id_ed25519)
„Authentication failed" bei HTTPS
- Kein Login-Passwort verwenden — stattdessen einen Personal Access Token
- Git Credential Manager hat alte Credentials gecacht? Windows:
cmdkey /list, Einträge mit „git:" löschen. macOS: Schlüsselbund → „github.com" oder Host-Name suchen und löschen.
Push wird abgelehnt („non-fast-forward")
git pull --rebase origin main # lokale Commits auf Server-Spitze umbasieren
# ggf. Konflikte lösen, dann:
git rebase --continue
git push
Merge-Konflikte
Alle modernen IDEs zeigen Konflikte direkt im Editor mit „Accept Current / Incoming / Both"-Buttons. CLI:
git status # zeigt konfliktbehaftete Dateien
# Datei editieren, Marker entfernen
git add <datei>
git rebase --continue # oder: git merge --continue
git push
Versehentlich committet — Commit zurücknehmen
git reset --soft HEAD~1 # letzten Commit rückgängig, Änderungen bleiben staged
git reset HEAD~1 # Änderungen werden unstaged aber bleiben
git reset --hard HEAD~1 # ALLES weg (Vorsicht!)
git revert <sha> # neuen Commit erzeugen, der einen alten rückgängig macht
Falsches Passwort / Token gespeichert
# alle gespeicherten Credentials zeigen:
git credential-cache exit
# oder Credentials per Host löschen:
git credential reject <<'EOF'
protocol=https
host=wiki.mnhub.net
EOF
Weiter lernen
- Pro Git Book (deutsch, kostenlos)
- Oh Shit, Git!?! — typische Git-Katastrophen und Rettung
- Learn Git Branching — interaktives Tutorial