Open-Git-Control ist ein moderner Desktop-Git-Client (Electron + React) fuer schnelle lokale Git-Workflows mit visueller Historie, GitHub-Integration, Security-Checks und optionaler KI-Unterstuetzung.
Sprache: Deutsch | English main version: README.md
- Screenshots
- Kurzueberblick
- Features im Detail
- 1) Repository- und Arbeitsbereich-Management
- 2) Branches, Remotes, Tags, Submodule
- 3) Commit Graph und Historie
- 4) Forensische Suche und Recovery
- 5) Staging Area, Stash, Commits
- 6) Conflict Resolver
- 7) Diff Viewer
- 8) GitHub Integration
- 9) Pull Requests, CI und Workflows
- 10) Releases
- 11) KI (Ollama / Gemini)
- 12) Security und Safety
- 13) System, Updates, Job Center
- 14) Shortcuts und Produktivitaet
- 15) Lokale Planning API und MCP-Tools
- Git installieren (wie und wo)
- Installation der App
- Typische Ablaeufe
- Einstellungen (Uebersicht)
- Datenhaltung und Sicherheit
- Verfuegbare npm-Skripte
- Troubleshooting
Mit der App kannst du:
- lokale Repositories oeffnen, verwalten und schnell wechseln
- neue Repositories direkt aus einem Ordner initialisieren (
git init) - Repository-Arbeit und zukuenftige Projektideen mit Status, Dringlichkeit, Beschreibung und freien Tags planen
- Planungsdaten ueber eine lokale REST-API und MCP-aehnliche JSON-RPC-Tools fuer lokale Agenten bereitstellen
- Branches, Remotes, Tags und Submodule in einer Sidebar verwalten
- Commits in einem visuellen Commit-Graph durchsuchen und bearbeiten
- forensische Historien-Suchen (
-S,-G,-L) aus der UI starten - Reflog-basiertes Recovery direkt in der App ausfuehren
- staged/unstaged/untracked Aenderungen inkl. Stash und Hunk-Aktionen bearbeiten
- Merge-/Rebase-Konflikte in einem integrierten Conflict Resolver loesen
- Repositories per HTTP/SSH URL klonen, GitHub-Repositories per URL forken, PRs erstellen/mergen, CI-Status sehen und Releases bauen
- AI Auto-Commit und AI Release Notes mit Ollama oder Gemini nutzen
- vor Pushes automatisch Secret-Scans durchfuehren
- Lokale Repositories oeffnen und als aktive Working Session setzen
- Wenn ein Ordner noch kein Repo ist: direktes
git initaus der App - Repo-Liste mit:
- Suche
- Sortierung (zuletzt geoeffnet, Name, Erstellzeit)
- Favoriten (Pin)
- Repo schliessen
- Persistenter Workspace:
- zuletzt aktive Repositories
- Sortierung
- Favoriten
- Projektplanung:
- repositorybezogene Todos, Bugs, Features und Notizen
- Status, Dringlichkeit, Beschreibung und frei definierbare Tags
- eigene Tabs/Status: idea, bug, planned, in-progress, blocked, done
- zukuenftige Projekte, die noch kein Git-Repository besitzen
- Projektordner erstellen,
git initausfuehren und alle Planungseintraege automatisch zugeordnet behalten
- Resizable Layout:
- Sidebar-Breite
- Breite zwischen Graph und Inspector
- Collapse-Status pro Repo fuer Branch/Tag/Remote/Submodule-Panels
- Branches:
- lokale + remote Branch-Liste
- Branch erstellen
- Checkout
- Kontextmenu mit Merge-Optionen
- Umbenennen
- Loeschen (inkl. Force-Delete-Fallback)
- Remotes:
- Remote hinzufuegen, entfernen, umbenennen, URL aendern
- upstream setzen fuer aktuellen Branch
- Remote-only Branches erkennen, direkt auschecken oder mergen
- Remote-Gesundheitsanzeige (ahead/behind/diverged/no-upstream/error)
- Auto-Fetch in einstellbarem Intervall
- Tags:
- lightweight oder annotated Tags erstellen
- Tags loeschen
- Tags pushen
- Tag-Suche
- Submodule:
- rekursive Statusanzeige
submodule update --init --recursivesubmodule sync --recursive- Submodule im Dateisystem oeffnen
- Visueller Commit-Graph mit Branch-/Merge-Topologie
- Suchmodus fuer Commits:
- alles
- subject
- author
- hash
- refs
- Treffer-Navigation (vor/zurueck)
- Working-Tree-Zeile direkt ueber der Historie (staged/unstaged/untracked)
- Commit-Kontextmenu mit erweiterten Aktionen:
- Checkout als neuer Branch
- Detached Checkout
- Branch erstellen
- Tag erstellen
- Cherry-Pick
- Revert (bei Merge-Commit auch
revert -m 1) - Reset
--soft,--mixed,--hard - Interaktiver Rebase (Todo-Liste editierbar)
- Commit-Hash kopieren
- Merge-Panel direkt im Commit-Kontextmenu:
- Commit/Ref/Branch in aktuellen Branch mergen
- Forensische Historie direkt im Graph:
- String-Suche (
git log -S) - Regex-Suche (
git log -G) - Zeilenbereich (
git log -L)
- String-Suche (
- Pfad-Suggestions aus Working Tree + Historie
- Treffer als Commitliste mit Direkt-Sprung in Diff
- Recovery Center (Reflog-basiert):
- Reflog filtern und inspizieren
- Recovery-Branch aus Reflog-Eintrag erstellen
- Detached Checkout
- Hard Reset mit Sicherheitsbestaetigung
- Bereiche fuer:
- Konflikte
- Staged
- Unstaged
- Untracked
- Dateiaktionen:
- stage/unstage
- stage all/unstage all
- discard file/all
- delete untracked
- stage all untracked
- Diff-Statistiken fuer staged/unstaged
- Stash-Funktionen:
- Stash mit optionaler Nachricht
- Apply / Pop / Drop
- Commit-Form:
- Titel + Beschreibung
--amend--signoffCtrl+Enterfuer Commit
- Eigene Conflict-Ansicht mit Datei- und Blocknavigation
- Blockbasierte Konfliktauflosung:
- Current/Incoming side-by-side
- pro Block: ours/theirs/both uebernehmen
- fuer alle Bloecke: ours/theirs uebernehmen
- Manueller Conflict-Editor mit Marker-/Line-Gutter-Feedback
- Save, Save+Resolved, Reload, Discard
merge --continue/merge --abortrebase --continue/rebase --abort- Automatisches Oeffnen bei erkannten Merge-/Rebase-Konflikten
- Quellen:
- staged
- unstaged
- commit-spezifisch
- Ansichten:
- Unified
- Side-by-Side
- Hunk-Navigation
- Hunk-Operationen:
- Stage Hunk
- Unstage Hunk
- Discard Hunk
- Schutz bei grossen Diffs (Truncation + Full-Copy)
- Binary-File-Erkennung
- Auth-Methoden:
- PAT
- OAuth Device Flow
- One-click Login ueber GitHub CLI (
gh)
- Gespeicherte Login-Session mit Auto-Reconnect
- GitHub-Repoliste mit Suche, Pagination und Refresh
- Clone-Workflow mit Progress-Modal
- Beliebige Remote-Repositories per HTTP/HTTPS/SSH URL klonen
- Beliebige GitHub-Repositories per URL forken (und den Fork lokal klonen)
- Erkennung, ob ein GitHub-Repo lokal bereits vorhanden ist
- Lokales Repo ohne
origindirekt als neues GitHub-Repo erstellen und verbinden
- PR-Liste fuer das aktive Repo (open/closed/all)
- PR erstellen (title/body/head/base)
- PR-Aktionen:
- im Browser oeffnen
- URL kopieren
- PR-Branch lokal auschecken
- Merge mit Methoden: merge, squash, rebase
- CI-/Check-Auswertung pro PR:
- badge success/failure/pending/unknown
- Workflow Runs + Status Checks
- Actions-Workflow-Panel mit Filter und Direktlink
- Release Creator mit eigenem View
- Release Context:
- bestehende Tags
- letzter Release-Tag
- Commits seit letztem Release
- Tag-Vorschlag fuer naechste Version
- Release erstellen mit:
- Tag
- Name
- target commitish
- body
- draft/prerelease
- AI-generierte Release Notes (Deutsch/Englisch)
- AI Auto-Commit:
- Aenderungen analysieren
- Dateien logisch gruppieren
- Commit-Messages erzeugen
- Fortschritt in Phasen (snapshot/grouping/committing/retry/fallback)
- laufenden Job abbrechen
- AI Release Notes aus Commit-Historie
- In Settings:
- Provider umschalten
- Modelle laden
- Verbindung testen
- Gemini API Key sicher speichern/loeschen
- Optionale Bestaetigungen fuer gefaehrliche Git-Operationen
- Secret-Scan vor Push:
- scannt staged + to-push Diffs
- Strengegrad low/medium/high
- Allowlist per Text/Path/Regex
- Warn-/Bestaetigungsdialog bei Treffern
- Kontextmenu-Aktionen fuer
.gitignore:- Datei
- Ordner
- Top-Level-Ordner
- Dateityp-Muster
- App-Updater (nur in installierten Production Builds):
- Check
- One-click Check+Download
- Installation heruntergeladener Updates
- Release Notes Anzeige
- Job Center mit Verlauf fuer laufende/abgeschlossene Jobs:
- clone
- fetch/pull/push
- secret scan
- AI auto-commit
Ctrl+1..4: Tabs wechseln (Local Repos, Repo, GitHub, Settings)Ctrl+Shift+F: FetchCtrl+Shift+P: Command PaletteCtrl+Enter: Commit ausfuehren (in Commit-Feldern)
- Lokale HTTP-API fuer die Projektplanung, gebunden an
127.0.0.1 - Bevorzugter Port:
2990; wenn er belegt ist, versucht die App den naechsten freien lokalen Port - API-Dokumentation unter
http://127.0.0.1:2990/api/ - Maschinenlesbare API-Beschreibung unter
/api/openapi.json - Alle Daten- und MCP-Endpunkte erfordern einen API-Token
- Token und Headername stehen in den Einstellungen unter
API/MCP - Token als
x-open-git-control-token: <TOKEN>oderAuthorization: Bearer <TOKEN>senden - Nutzer koennen einen persistenten Token fuer 1 Tag, 1 Monat, 1 Jahr oder dauerhaft generieren
- Persistente API-Token werden ueber Electron
safeStorageOS-verschluesselt gespeichert; abgelaufene Tokens werden automatisch entfernt - Ohne persistenten Token nutzt die App einen temporaeren Token fuer den aktuellen App-Prozess
- Token und Headername stehen in den Einstellungen unter
- Planner-Endpunkte fuer:
- Projekte, Repositories, Tabs und Todos abfragen
- naechste offene Todos nach Dringlichkeit abrufen
- flachen Projektkontext an jedem Todo liefern (
projectName,projectKind,projectRepoPath), damit Agenten Todos direkt zuordnen koennen - Todos erstellen, aktualisieren, verschieben und loeschen
- geplante Projekte erstellen
- Planner-Projekt fuer einen Repository-Pfad sicherstellen
- Git- und GitHub-Operationen werden bewusst nicht ueber die lokale API oder MCP-Tools bereitgestellt
- Tab-spezifische Endpunkte wie
/api/tabs/bug/todosund/api/tabs/working/todosworkingwird als Alias fuerin-progressakzeptiert
- Agenten-Shortcuts:
GET /api/agent/nextGET /api/mcp/toolsPOST /api/mcp/tools/call
- MCP-aehnlicher JSON-RPC-Endpunkt unter
/mcp- unterstuetzt
initialize,tools/listundtools/call - stellt Planning-Tools wie
get_next_todos,list_todos,create_todo,move_todounddelete_todobereit
- unterstuetzt
- Runtime-Steuerung:
OPEN_GIT_CONTROL_API_PORT=2990fuer den bevorzugten PortOPEN_GIT_CONTROL_API_DISABLED=truezum Deaktivieren des lokalen API-ServersOPEN_GIT_CONTROL_API_TOKEN=<TOKEN>fuer ein fest vorgegebenes API-Token, das gespeicherte/generierte Tokens ueberschreibt
Git muss installiert und im PATH verfuegbar sein.
- Offizielle Download-Seite: git-scm.com/downloads
- Windows Installer herunterladen und ausfuehren.
- Standardoptionen sind in der Regel passend (inkl. "Git from the command line").
- Terminal neu starten.
Option A (empfohlen mit Homebrew):
brew install gitOption B (Apple Command Line Tools):
xcode-select --installDebian/Ubuntu:
sudo apt update && sudo apt install git -yFedora:
sudo dnf install git -yArch:
sudo pacman -S gitgit --version
git config --global user.name "Dein Name"
git config --global user.email "dein@email.de"- GitHub Releases oeffnen.
- Passendes Paket fuer dein Betriebssystem herunterladen.
- Installieren und starten.
Voraussetzungen:
- Node.js (aktuelles LTS)
- npm
- Git
npm install
npm run devnpm run build
npm run distPlattform-spezifisch:
npm run dist:win
npm run dist:linux
npm run dist:macOutput liegt in release/.
Lokale Repositories->Repository oeffnen.- Ordner auswaehlen.
- Wenn noch kein Repo: Initialisierung bestaetigen.
- Danach in den
Repository-Tab wechseln.
- Fetch/Pull aus der Topbar.
- Branch erstellen oder wechseln.
- Dateien in der Staging Area bearbeiten (stage/unstage/discard).
- Commit erstellen (optional amend/signoff).
- Push (optional Upstream setzen oder force-with-lease).
- Bei Merge-/Rebase-Konflikten oeffnet sich der Conflict Resolver.
- Pro Block
Current,IncomingoderBothwaehlen. - Speichern + als geloest markieren.
- Merge/Rebase fortsetzen.
- GitHub verbinden (PAT/Device/One-click).
- PR im Repo-Panel erstellen.
- CI-Status im PR-Eintrag pruefen.
- PR mergen (merge/squash/rebase) oder lokal auschecken.
- Topbar
Releaseoeffnen. - Release Context aktualisieren.
- Tag und Release-Name setzen.
- Optional AI Release Notes generieren.
- Release erstellen.
- Im Commit-Graph auf
Recovery Centerwechseln. - Reflog-Eintrag auswaehlen.
- Recovery-Branch erstellen oder (vorsichtig) hard reset.
- Open-Git-Control starten.
http://127.0.0.1:2990/api/fuer die lokale API-Dokumentation oeffnen.- Einen externen Agenten
GET /api/agent/next?repoPath=...aufrufen lassen, um offene Arbeit fuer ein Repository zu finden. - Der Agent kann Planungseintraege ueber
/api/todosoder/mcp-Toolaufrufe erstellen oder verschieben. - Git- und GitHub-Arbeit bleibt in der Desktop-App und ist nicht ueber die lokale API oder MCP-Oberflaeche verfuegbar.
General:- Theme
- Sprache (DE/EN)
- Default Branch
- Secondary History
- Commit Template
- Auto-Fetch Intervall
Integrations:- AI Provider/Modelle
- Gemini API Key
- GitHub OAuth Client ID
Security:- Confirm dangerous ops
- Secret-Scan before push
- Secret-Scan strictness + allowlist
System:- Update-Status
- One-click Update
- Install Update
- Job Center
- Git-Operationen laufen lokal gegen dein ausgewaehltes Repo.
- Repositories/Settings werden im User-Data-Verzeichnis der App gespeichert.
- Planungsprojekte und Todos werden lokal im User-Data-Verzeichnis der App gespeichert.
- Die lokale Planning API bindet an
127.0.0.1und stellt Planungsdaten lokalen Prozessen auf deinem Rechner bereit. - GitHub-Token, Gemini-Key und persistente Planning-API-Token werden ueber Electron
safeStorageOS-verschluesselt gespeichert, wenn verfuegbar. - Falls OS-Verschluesselung nicht verfuegbar ist, werden Secrets nicht persistent gespeichert.
npm run dev- Vite + Electron Developmentnpm run build- Frontend + Electron Buildnpm run dist- Packaging fuer aktuelle Plattformnpm run dist:win- Windows Paketnpm run dist:linux- Linux Paketnpm run dist:mac- macOS Paketnpm run test- Tests startennpm run test:coverage- Tests mit Coveragenpm run test:ci- CI-geeignete Test/Build-Kette
git not found- Git installieren und Terminal/PC neu starten.
- Pruefen mit
git --version.
- One-click GitHub Login funktioniert nicht
- GitHub CLI installieren und
gh --versionpruefen.
- GitHub CLI installieren und
- Device Flow geht nicht
- GitHub OAuth Client ID in Settings setzen (oder
GITHUB_OAUTH_CLIENT_ID).
- GitHub OAuth Client ID in Settings setzen (oder
- Keine PRs sichtbar
originmuss auf GitHub zeigen und Auth muss aktiv sein.
- Auto-Update nicht verfuegbar
- Update-Funktionen sind nur in installierten Production Builds aktiv, nicht in
npm run dev.
- Update-Funktionen sind nur in installierten Production Builds aktiv, nicht in
- Planning API ist nicht auf Port
2990erreichbar- Eventuell nutzt ein anderer Prozess den Port; im App-Log steht die tatsaechliche lokale API-URL.
OPEN_GIT_CONTROL_API_PORTvor dem App-Start setzen, um einen anderen bevorzugten Port zu waehlen.


