WIT-Wiki
Neue Version 2.1
Schritte 1–4 macht man einmalig pro Rechner. 5 hängt vom Tool ab — alle gängigen IDEs und Git-Clients werden unten abgedeckt.

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 git oder 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

  1. Mein Profil öffnen
  2. Public-Key ins Feld „SSH Public Key" einfügen → Speichern
  3. Admin übernimmt deinen Key in die authorized_keys des git-Users (Export, typischerweise per Cron automatisiert)
  4. Test: ssh -T git@wiki.mnhub.net (sollte ohne Passwort Verbindung aufbauen)
HTTPS-Alternative ohne SSH-Key: in Mein Profil → API-Tokens einen Personal Access Token mit 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:

  1. Zum Repo gehen → Tab Dateien
  2. „Dateien hochladen"-Button oben rechts
  3. Dateien per Drag-&-Drop in die Zone ziehen — oder einen ganzen Ordner auswählen (Ordnerstruktur bleibt erhalten)
  4. Target-Branch wählen, optional Unterordner angeben
  5. Commit-Message eintragen → Hochladen & Committen
Der Browser-Upload erzeugt einen echten Git-Commit mit dir als Autor — kann also von allen Team-Mitgliedern per 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

  1. VS Code installieren
  2. Empfohlene Extensions (Ctrl+Shift+X):
    • GitLens — inline Blame, History, vieles mehr
    • Git Graph — visueller Commit-Baum
    • Git History — File-Log mit Diff
  3. Settings: "git.autofetch": true, "git.confirmSync": false
  4. Source-Control-Panel: Ctrl+Shift+G
  5. 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.

  1. File → New → Project from Version Control (oder Welcome-Screen → „Get from VCS")
  2. URL einfügen, Ziel-Ordner wählen → Clone
  3. Im Editor: Version Control-Tabfenster unten (Alt+9)
  4. Commit: Ctrl+K · Push: Ctrl+Shift+K · Pull: Ctrl+T (Update Project)
  5. Branches: rechts unten in der Statusleiste (aktueller Branch-Name) → Menü
  6. 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.

  1. Start-Fenster → Clone a repository
  2. Repository-Location: URL einfügen (HTTPS oder SSH)
  3. Path: lokaler Ordner → Clone
  4. Menüleiste: Git → Commit or Stash…
  5. Änderungen im Team-Explorer / Git-Changes-Fenster (Ctrl+0, G)
  6. Commit-Nachricht → Commit AllPush (Pfeil-hoch-Icon)

Branches: rechts unten in der Statusleiste. Merge/Rebase via Git → Manage Branches.

Android Studio

Basiert auf IntelliJ — dieselbe Git-UI.

  1. Welcome-Screen → Get from VCS → URL einfügen
  2. Commit: Ctrl/⌘+K · Push: Ctrl/⌘+Shift+K
  3. Ansonsten identisch zu JetBrains

Xcode (macOS)

Git ist seit Xcode 9 eingebaut.

  1. File → Clone… → URL einfügen
  2. Wenn SSH: Xcode fragt ggf. nach Schlüssel → auf hinterlegten ~/.ssh/id_ed25519 zeigen
  3. Source Control Navigator: +2
  4. Commit: Source Control → Commit… (++C)
  5. Push: Source Control → Push… (++P) — nur in Xcode-Target „Push to remote" muss aktiviert sein

Sublime Merge

Schneller, minimalistischer Git-Client von Sublime HQ.

  1. Sublime Merge installieren
  2. Repository → Clone Repository…
  3. Änderungen unten: Stage per Klick, Commit-Nachricht oben, Ctrl/⌘+Enter
  4. Push-Button rechts oben (oder Ctrl/⌘+Shift+P)

Sourcetree (Atlassian, kostenlos)

  1. Sourcetree installieren
  2. File → Clone / New… → URL + Pfad
  3. File-Status-Tab: Änderungen stagen (Pfeil hoch)
  4. Commit-Feld unten, Haken bei „Push changes immediately"
  5. Für SSH-Keys: Tools → Options → SSH-Client: OpenSSH (nicht PuTTY)

GitKraken

  1. GitKraken installieren (Free-Tier reicht für privat/öffentliche Repos; kommerziell kostenpflichtig)
  2. File → Clone Repo → URL + Pfad
  3. Graph-Ansicht zeigt alle Commits/Branches visuell
  4. Stage/Commit via Button-Leiste rechts; Push oben („↑" Icon)

Fork

Schneller Git-GUI für macOS und Windows.

  1. Fork installieren
  2. File → Clone… → URL + Pfad
  3. Working Copy: Staging links, Commit-Feld unten, Stage/Commit/Push selbsterklärend

Tower

Polished commercial Git-GUI (macOS, Windows).

  1. Tower (30-Tage-Trial)
  2. File → Clone… → URL + Pfad
  3. Working-Copy-View, drag-n-drop-Staging

TortoiseGit (Windows-Shell-Extension)

Integration in Windows-Explorer — Rechtsklick im Ordner gibt Git-Menü.

  1. TortoiseGit installieren
  2. Rechtsklick in leerem Ordner → Git Clone… → URL
  3. Rechtsklick in Arbeitsordner → Git Commit → -> "master"
  4. Push per Rechtsklick → TortoiseGit → Push…
  5. SSH-Key: Settings → Network → SSH Client auf Pfad zu ssh.exe (kommt mit Git for Windows)

Eclipse (mit EGit)

  1. EGit ist ab Eclipse Luna eingebaut
  2. File → Import → Git → Projects from Git → Clone URI
  3. Window → Show View → Git Staging
  4. Änderungen in Unstaged, per Pfeil nach Staged, dann Commit-Message, „Commit and Push"

NetBeans

  1. Team → Git → Clone…
  2. URL, Repository-Folder, Username (falls HTTPS)
  3. Commit: Team → Commit…
  4. 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:

  1. Datei ändern/anlegen
  2. Änderungen anzeigen lassen
  3. Stage (= „für den nächsten Commit markieren")
  4. Commit mit kurzer, aussagekräftiger Nachricht
  5. 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.

Protected Branches (z. B. 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_keys aktualisiert?
  • Test: ssh -Tv git@wiki.mnhub.net — das -v zeigt welcher Key probiert wurde
  • Bei mehreren Keys: ~/.ssh/config anpassen (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