Skip to content

Latest commit

 

History

History
861 lines (713 loc) · 28.2 KB

File metadata and controls

861 lines (713 loc) · 28.2 KB

Open-Git-Control

CI Latest release License

Open-Git-Control ist ein freier, quelloffener Desktop-Git-Client fuer Windows, macOS und Linux. Die App kombiniert visuellen Commit-Graph, Staging, Diff-Ansicht, Konfliktloesung, GitHub Pull Requests, Releases, Projektplanung, Secret-Scanning, Recovery-Werkzeuge und optionale KI-Unterstuetzung in einer lokalen Anwendung.

Sprache: Deutsch | English version: README.md

Open-Git-Control App-Uebersicht

Warum Open-Git-Control?

Open-Git-Control ist fuer dich interessant, wenn dir ein sehr kleiner Git-Client nicht reicht, du aber trotzdem eine transparente, lokale Alternative zu kommerziellen Desktop-Clients suchst.

  • Frei und open source unter der GNU-GPL-Lizenz
  • Git-Operationen laufen lokal gegen deine Repositories
  • Visueller Commit-Graph mit Branch-, Tag-, Merge-, Reset-, Rebase-, Cherry-Pick-, Revert- und Recovery-Aktionen
  • Staging, Stash, Hunk-Diffs, Datei-Historie, Blame und Konfliktloesung in einem Workflow
  • GitHub-Login, Repository-Klonen/Forken, Pull Requests, CI-Status, Workflows und Release-Publishing
  • Projektplanung mit lokaler REST- und MCP-aehnlicher API fuer agentengestuetzte Arbeit
  • Optionale KI-Unterstuetzung ueber Ollama oder Google Gemini fuer Commit Messages, Auto-Commits und Release Notes
  • Secret-Scanning vor Pushes, Allowlist, Sicherheitsabfragen fuer gefaehrliche Aktionen und lokale verschluesselte Token-Speicherung, wenn vom OS unterstuetzt

Downloads

Immer aktuelle Release-Seite:

github.com/timbornemann/Open-Git-Control/releases/latest

Aktuell neuestes Release: v1.3.0, veroeffentlicht am 2026-06-30.

Badge und Latest-Release-Seite bleiben automatisch aktuell. Die direkten Binary-Links unten sind durch die GitHub-Asset-Namen versioniert und werden vom Release-Workflow nach einem neuen stabilen Release aktualisiert.

Plattform Paket Direkter GitHub-Download
Windows x64 NSIS Installer .exe Open-Git-Control-1.3.0-win-x64.exe
Linux x64 AppImage Open-Git-Control-1.3.0-linux-x86_64.AppImage
Linux amd64 Debian-Paket .deb Open-Git-Control-1.3.0-linux-amd64.deb
macOS x64 Disk Image .dmg Open-Git-Control-1.3.0-mac-x64.dmg
macOS x64 Zip-Archiv Open-Git-Control-1.3.0-mac-x64.zip

Die Dateien latest*.yml und .blockmap in GitHub Releases sind Update-Metadaten fuer den Auto-Updater. Normale Nutzer sollten einen der Installer oben herunterladen.

Voraussetzungen

  • Git muss installiert und im PATH verfuegbar sein.
  • GitHub CLI (gh) ist optional und nur fuer die One-click-GitHub-Login-Methode erforderlich.
  • Ollama oder ein Gemini API Key ist optional und nur fuer KI-Funktionen erforderlich.
  • Entwicklung aus dem Quellcode benoetigt Node.js und npm. CI nutzt aktuell Node.js 20.

Screenshots

Repository Cockpit und Commit Graph

Repository Cockpit und Commit Graph

Diff Viewer mit Hunk-Aktionen, Blame und Datei-Inspector

Diff Viewer

Conflict Resolver

Conflict Resolver

Codebase Timeline

Codebase Timeline

Project Planning Board

Project Planning Board

Release Creator

Release Creator

Settings

Settings

Inhaltsverzeichnis

Feature-Referenz

Repository- und Workspace-Management

  • Lokale Repositories oeffnen und als aktive Working Session setzen.
  • Ordner, die noch kein Git-Repository sind, mit git init initialisieren.
  • Persistenter Repository-Workspace mit zuletzt genutzten Repositories, Favoriten, aktivem Repo und Sortierung.
  • Lokale Repositories suchen und nach zuletzt geoeffnet, Name, Erstellzeit, aufsteigend oder absteigend sortieren.
  • Repositories anpinnen, schliessen und schnell zwischen bekannten Repositories wechseln.
  • Nicht verfuegbare Repositories erkennen und fehlende Pfade sauber behandeln.
  • Gespeicherte Layout-Groessen in den Settings zuruecksetzen.
  • Haupt-Sidebar und Graph/Inspector-Split vergroessern oder verkleinern.
  • Eingeklappte Sidebar-Panels pro Repository fuer Remotes, Branches, Tags und Submodule merken.

Branches, Remotes, Tags und Submodule

  • Lokale und Remote-Branches mit Suche/Filter anzeigen.
  • Branches erstellen, lokale Branches auschecken, umbenennen und loeschen.
  • Unmerged Branches nur nach expliziter Bestaetigung force-loeschen.
  • Branches aus dem Graphen und von ausgewaehlten Commits erstellen.
  • Branches aus Topbar oder Kontextmenu mergen mit:
    • Standard-Merge
    • No-fast-forward-Merge
    • Squash-Merge
    • Fast-forward-only-Merge
  • Alle Remotes mit Pruning und Tags fetchen.
  • Auto-Fetch in konfigurierbarem Intervall und Refresh, wenn die App wieder sichtbar wird.
  • Remote-Zustaende anzeigen:
    • kein Remote konfiguriert
    • kein Tracking-Branch
    • lokal voraus
    • Remote voraus
    • diverged
    • aktuell
    • Fetch-Fehler
  • Remotes hinzufuegen, entfernen, umbenennen und URLs aktualisieren.
  • Upstream fuer den aktuellen Branch setzen.
  • Fehlende GitHub-Remotes behandeln, indem ungueltige origin-Mappings entfernt und Repositories wieder lokal/offline genutzt werden.
  • Lightweight oder annotated Tags erstellen.
  • Tags suchen, auswaehlen, loeschen und pushen.
  • Rekursiven Submodule-Status anzeigen.
  • git submodule update --init --recursive ausfuehren.
  • git submodule sync --recursive ausfuehren.
  • Submodule im Dateisystem oeffnen.

Topbar-Git-Aktionen

  • Fetch.
  • Ausgewaehlten Branch mit waehlbarem Merge-Modus mergen.
  • Pull mit:
    • Standard-Pull
    • Pull mit Rebase
    • No-fast-forward-Pull
    • Fast-forward-only-Pull
  • Push mit:
    • Standard-Push
    • Upstream setzen (-u)
    • Force-with-lease
    • Tags pushen
  • Codebase Timeline oeffnen.
  • Release Creator oeffnen.
  • Staging/Commit-Panel oeffnen.
  • Kompakte "More actions"-Varianten bei schmalen Fenstern.

Commit Graph und Historie

  • Visueller Commit-Graph mit Branch- und Merge-Topologie.
  • Paged Commit Loading fuer groessere Historien.
  • Working-Tree-Zeile ueber der Historie mit staged, unstaged und untracked Counts.
  • Asynchrone Commit-Statistiken fuer Dateien, Additions und Deletions.
  • Commits suchen nach:
    • allen Feldern
    • Subject
    • Autor
    • Hash
    • Refs
  • Suchtreffer vor/zurueck navigieren.
  • Commits auswaehlen und geaenderte Dateien, Commit-Body, Datei-Historie, Blame und Patch inspizieren.
  • Commit-Kontextmenu mit:
    • Checkout als neuer Branch
    • Detached Checkout
    • Branch erstellen
    • Tag erstellen
    • Cherry-Pick
    • Revert
    • Merge-Commit mit -m 1 reverten
    • Reset --soft
    • Reset --mixed
    • Reset --hard
    • interaktiver Rebase mit editierbarer Todo-Liste
    • ausgewaehlte Ref in aktuellen Branch mergen
    • Commit-Hash kopieren
  • Tag-Auswahl springt zum getaggten Commit.

Codebase Timeline

  • Timeline-Ansicht rekonstruiert Datei-Aenderungen ueber die Commit-Historie.
  • Canvas-basierte File-Tree-Visualisierung.
  • Markiert hinzugefuegte, geaenderte, geloeschte und umbenannte Dateien.
  • Playback-Steuerung:
    • Play/Pause
    • Reset zum Anfang
    • Sprung ans Ende
    • Timeline-Slider
    • Geschwindigkeitsauswahl von sehr langsam bis sehr schnell
  • Zeigt aktiven Commit-Hash, Autor, Datum, Subject und Position in der Historie.

Forensische Suche und Recovery

  • Forensische Historie direkt aus dem Graphen:
    • String-Suche mit git log -S
    • Regex-Suche mit git log -G
    • Zeilenbereich-Suche mit git log -L
  • Pfad-Vorschlaege aus Working Tree und Repository-Historie.
  • Ergebnis-Commits inspizieren und direkt in Diffs springen.
  • Recovery Center auf Basis von Reflog:
    • Reflog-Eintraege filtern
    • verlorene oder verschobene Commits untersuchen
    • Recovery-Branch aus Reflog-Eintrag erstellen
    • Detached Checkout
    • Hard Reset mit ausdruecklicher Danger-Bestaetigung

Staging Area, Stash und Commits

  • Working Directory Panel mit Bereichen fuer:
    • Konflikte
    • staged files
    • unstaged files
    • untracked files
  • Geaenderte Dateien suchen.
  • Staged- und unstaged-Dateistatistiken anzeigen.
  • Einzelne Dateien stagen und unstagen.
  • Stage all und unstage all.
  • Alle untracked Dateien stagen.
  • Einzelne Dateien oder alle Aenderungen verwerfen.
  • Untracked Dateien loeschen.
  • Dateien, Ordner, Top-Level-Ordner oder Dateityp-Pattern zu .gitignore hinzufuegen.
  • Stash mit optionaler Nachricht.
  • Stashes anwenden, poppen und droppen.
  • Branch aus Stash erstellen.
  • Commit mit Titel und optionaler Beschreibung.
  • Commit mit --amend.
  • Commit mit --signoff.
  • Commit-Signoff standardmaessig in den Settings aktivieren.
  • Konfigurierbares Commit Template.
  • Commit mit Ctrl+Enter in Commit-Feldern ausfuehren.

Diff Viewer und Datei-Inspector

  • Staged, unstaged und commit-spezifische Diffs oeffnen.
  • Unified- und Side-by-side-Diff-Modus.
  • Syntax-aehnliches Highlighting fuer haeufige Code-Tokens.
  • Hunk-Navigation mit aktuellem Hunk-Counter.
  • Hunk-Aktionen:
    • Hunk stagen
    • Hunk unstagen
    • Hunk verwerfen
  • Blame-Overlay im Diff Viewer.
  • Blame-Eintraege anklicken und zum verantwortlichen Commit springen.
  • Datei-Inspector-Tabs:
    • History
    • Blame
    • Patch
  • Datei-Historie zeigt vorherige Commits der ausgewaehlten Datei.
  • Blame laedt in Chunks und kann weitere 500-Zeilen-Seiten laden.
  • Patch-Tab oeffnet den Diff im Hauptbereich.
  • Schutz bei grossen Diffs:
    • Byte- und Zeilenlimits
    • gekuerztes Rendering
    • Vollkopie-Aktion, wenn verfuegbar
  • Binary-Erkennung fuer haeufige Binaer-Dateiendungen und Git Binary Patches.

Conflict Resolver

  • Eigene Conflict-Resolver-Ansicht fuer Merge- und Rebase-Konflikte.
  • Oeffnet automatisch, wenn Konflikte erkannt werden.
  • Konfliktdateiliste und Konfliktblock-Navigation.
  • Side-by-side-Darstellung fuer current/incoming Konfliktbloecke.
  • Einzelne Bloecke loesen mit:
    • current uebernehmen
    • incoming uebernehmen
    • beide Versionen uebernehmen
  • Alle Bloecke loesen mit:
    • alle current uebernehmen
    • alle incoming uebernehmen
  • Manueller Editor mit Konfliktmarkern und Line-Gutter-Feedback.
  • Datei von Disk neu laden.
  • Aenderungen speichern.
  • Speichern und als resolved markieren.
  • Aenderungen verwerfen.
  • Merge fortsetzen oder abbrechen.
  • Rebase fortsetzen oder abbrechen.
  • Commits verhindern, solange ungeloeste Konflikte vorhanden sind.

GitHub Integration

  • Authentifizierung mit:
    • Personal Access Token
    • OAuth Device Flow
    • One-click Login ueber GitHub CLI (gh)
  • Reconnect aus gespeicherter GitHub Session.
  • Logout und gespeicherte Auth entfernen.
  • GitHub OAuth Client ID fuer Device Flow konfigurieren.
  • GitHub Host fuer GitHub-Enterprise-aehnliche Hosts konfigurieren.
  • GitHub-Repositories mit Suche, Pagination und Refresh listen.
  • Erkennen, ob GitHub-Repositories lokal bereits geklont sind.
  • GitHub-Repositories mit Progress Modal klonen.
  • Beliebige HTTP-, HTTPS- oder SSH-Git-Remote-URL klonen.
  • GitHub-Repository per URL forken und Fork lokal klonen.
  • Neues GitHub-Repository aus lokalem Repo ohne origin erstellen.
  • Erstelltes GitHub-Repo als origin verbinden.
  • Ungueltiges Remote Mapping ersetzen, wenn das Upstream-Repository nicht mehr existiert.

Pull Requests, CI und Workflows

  • Pull-Request-Liste fuer das aktive GitHub-Repository.
  • PRs nach open, closed oder all filtern.
  • Pull Requests mit Titel, Body, Head Branch und Base Branch erstellen.
  • PRs im Browser oeffnen.
  • PR-URLs kopieren.
  • PR-Branches lokal auschecken.
  • PRs mergen mit:
    • Merge Commit
    • Squash
    • Rebase
  • CI-Auswertung pro PR:
    • success
    • failure
    • pending
    • neutral
    • unknown
  • Workflow Runs und Status Checks anzeigen.
  • Aktuelle GitHub Actions Workflow Runs fuer den aktuellen Branch anzeigen.
  • Workflow Runs filtern und im Browser oeffnen.

Release Creator

  • Eigene Release-Ansicht aus der Topbar.
  • GitHub Release Context lesen:
    • Repository URL
    • bestehende Tags
    • letzter Release-Tag
    • Commits seit letztem Release
    • Ziel-Branch oder Commit
  • Naechstes SemVer-Tag vorschlagen.
  • Version bump waehlen:
    • major
    • minor
    • patch
  • Konfigurieren:
    • Tag-Name
    • Release-Name
    • Target commitish
    • Release Body in Markdown
    • Draft-Flag
    • Prerelease-Flag
  • Release Notes mit KI generieren.
  • KI-Notes anpassen:
    • Sprache Englisch/Deutsch
    • Merge Commits ausschliessen
    • in Sektionen gruppieren
    • mehr technische Details
    • Breaking-Changes-Sektion
    • automatische Commit-Liste anhaengen
    • Commit Hashes anzeigen
  • Release direkt auf GitHub veroeffentlichen.

Projektplanung

  • Planning View fuer repositorygebundene Projekte und zukuenftige Projekte.
  • Board-Spalten:
    • Idea
    • Bug
    • Planned
    • In progress
    • Blocked
    • Done
  • Planungseintraege unterstuetzen:
    • Titel
    • Beschreibung
    • Prioritaet
    • Status
    • Tags
  • Planungseintraege nach Suche, Prioritaet, Status und Tag filtern.
  • Eintraege erstellen, bearbeiten, verschieben und loeschen.
  • Zukuenftige Projekte ohne Git-Repository erstellen.
  • Projekte bearbeiten oder loeschen.
  • Zukuenftiges Projekt materialisieren: Parent-Verzeichnis waehlen, Projektordner erstellen, git init ausfuehren und Planning-Projekt verknuepft halten.
  • Beim Entfernen eines Repositories koennen verknuepfte Planungseintraege nach Bestaetigung mit entfernt werden.

Lokale Planning API und MCP

  • Lokaler HTTP-Server, gebunden an 127.0.0.1.
  • Bevorzugter Port: 2990; wenn belegt, nutzt die App den naechsten freien lokalen Port.
  • API-Dokumentation: http://127.0.0.1:2990/api/
  • OpenAPI JSON: /api/openapi.json
  • MCP JSON-RPC-Endpunkt: /mcp
  • REST-Wrapper fuer MCP-aehnliche Tools:
    • GET /api/mcp/tools
    • POST /api/mcp/tools/call
  • Alle Daten- und MCP-Endpunkte benoetigen einen Token.
  • Public Health und Docs-Endpunkte liefern keine geschuetzten Daten.
  • Token kann gesendet werden als:
    • x-open-git-control-token: <TOKEN>
    • Authorization: Bearer <TOKEN>
  • Settings zeigen:
    • API-Status
    • Host
    • Port
    • Base URL
    • API-Doku-URL
    • OpenAPI-URL
    • MCP-URL
    • Token-Header
    • aktueller Token
    • Token-Quelle
    • Token-Ablauf
  • Persistente API-Token generieren fuer:
    • 1 Tag
    • 1 Monat
    • 1 Jahr
    • dauerhaft
  • Persistente API-Token werden mit Electron safeStorage gespeichert, wenn OS-Verschluesselung verfuegbar ist.
  • Ohne persistenten Token nutzt die App temporaere Session-Tokens.
  • Environment-Steuerung:
    • OPEN_GIT_CONTROL_API_PORT=2990
    • OPEN_GIT_CONTROL_API_DISABLED=true
    • OPEN_GIT_CONTROL_API_TOKEN=<TOKEN>
  • REST-Planning-Endpunkte:
    • GET /api/health
    • GET /api/projects
    • POST /api/projects
    • GET/PATCH/DELETE /api/projects/:projectId
    • GET/POST /api/projects/:projectId/todos
    • GET /api/repositories
    • POST /api/repositories/ensure
    • GET /api/repositories/todos
    • GET/POST /api/todos
    • GET /api/todos/next
    • GET/PATCH/DELETE /api/todos/:todoId
    • POST /api/todos/:todoId/move
    • GET /api/tabs
    • GET/POST /api/tabs/:tab/todos
    • GET /api/agent/next
  • MCP-aehnliche Tools:
    • list_tabs
    • list_projects
    • list_repositories
    • list_todos
    • get_next_todos
    • create_project
    • ensure_repository_project
    • create_todo
    • update_todo
    • move_todo
    • delete_todo
  • Git- und GitHub-Operationen werden bewusst nicht ueber die lokale API oder MCP-Oberflaeche exportiert.

KI-Unterstuetzung

  • Provider:
    • Ollama
    • Google Gemini
  • Ollama Base URL konfigurieren.
  • Gemini API Key sicher speichern, ersetzen und entfernen, wenn OS-Verschluesselung verfuegbar ist.
  • Provider-Verbindung testen.
  • Verfuegbare Modelle laden.
  • Modell auswaehlen oder manuell eintragen.
  • Commit-Message-Stil konfigurieren:
    • Conventional Commits
    • Plain
    • Detailed
  • Commit-Message-Sprache konfigurieren:
    • Auto
    • Deutsch
    • Englisch
  • KI-Commit-Message aus Nutzerhinweisen generieren.
  • KI Auto-Commit:
    • analysiert den Working Tree
    • gruppiert geaenderte Dateien logisch
    • erzeugt Commit Messages
    • erstellt Commits automatisch
    • meldet Phasen wie snapshot, grouping, committing, retry, fallback, done, failed und cancelled
    • kann abgebrochen werden
  • KI-Release-Notes aus Commit-Historie und Release Context.

Security und Safety

  • Optionale Bestaetigungsdialoge fuer gefaehrliche Git-Operationen.
  • Explizite Danger-Bestaetigungen fuer destruktive Reset-, Discard-, Delete-, Force-Delete- und aehnliche Aktionen.
  • Git Command Policy begrenzt, welche Befehle der Renderer beim Main Process anfordern kann.
  • External-Link-Policy oeffnet erlaubte URLs ueber den Main Process.
  • Diff-Preview-Policy normalisiert sichere Diff-Befehle.
  • Secret-Scan vor Push:
    • scannt staged Diffs
    • scannt to-push Diffs
    • kann Tags einbeziehen
    • unterstuetzt Abbruch
    • meldet Treffer mit Rule, Severity, Datei, Zeile und bereinigtem Kontext
  • Secret-Scan-Strengegrad:
    • low
    • medium
    • high
  • Secret-Scan-Allowlist-Formate:
    • path:...
    • regex:...
    • freier Text
    • Kommentarzeilen mit #
  • GitHub Token, Gemini Key und persistenter Planning-API-Token werden OS-verschluesselt ueber Electron safeStorage gespeichert, wenn verfuegbar.
  • Wenn OS-Verschluesselung nicht verfuegbar ist, werden Secrets nicht persistent gespeichert.

Settings, Updates und Job Center

  • General Settings:
    • Theme
    • Sprache
    • Default Branch
    • Layout zuruecksetzen
    • Secondary History
    • Commit Signoff Default
    • Commit Template
    • Auto-Fetch Intervall
  • Themes:
    • Copper Night
    • Midnight Teal
    • Graphite Blue
    • Forest Copper
    • Porcelain Light
    • Ember Slate
    • Arctic Mint
    • Mono Dark Red
    • Mono Light Red
    • Mono Dark Green
    • Mono Light Green
  • Integrations Settings:
    • AI Provider
    • AI Model
    • AI Message Style/Language
    • Ollama URL
    • Gemini API Key
    • GitHub OAuth Client ID
  • API & MCP Settings:
    • Runtime API Status
    • kopierbare URLs und Token-Werte
    • Token generieren und loeschen
    • Beispiel-cURL-Befehle
    • Beispiel-MCP-Server-Config
  • Security Settings:
    • Bestaetigungen fuer gefaehrliche Operationen
    • Secret-Scan vor Push
    • Strictness
    • Allowlist
  • System Settings:
    • installierte App-Version
    • Updater-Status
    • verfuegbare Version
    • Download-Fortschritt
    • Background-Update-Toggle
    • One-click Update
    • Release Notes
    • Job Center
  • Job Center verfolgt aktuelle Operationen wie:
    • clone
    • fetch
    • pull
    • push
    • stage
    • commit
    • stash branch
    • secret scan
    • AI auto-commit

Shortcuts und Produktivitaet

  • Ctrl+1..4: Haupt-Sidebar-Tabs wechseln
  • Ctrl+Shift+F: Fetch
  • Ctrl+Shift+P: Command Palette
  • Ctrl+Enter: Commit aus Commit-Feldern ausfuehren
  • Command Palette mit Tastaturnavigation, Suche, Enter zum Ausfuehren und Esc zum Schliessen
  • Copy-Buttons fuer Hashes, URLs, Tokens, API-Beispiele und PR-Links
  • Virtualisierte Listen fuer groessere Datei- und Commit-Detailansichten

Typische Workflows

Repository oeffnen oder initialisieren

  1. Tab "Local Repositories" oeffnen.
  2. Ordner auswaehlen.
  3. Falls es noch kein Git-Repository ist, Initialisierung bestaetigen.
  4. In den Repository-Tab wechseln und arbeiten.

Standard-Lokalworkflow

  1. Fetch oder Pull aus der Topbar.
  2. Branch erstellen oder wechseln.
  3. Geaenderte Dateien im Working Directory pruefen.
  4. Diffs oeffnen, Dateien oder Hunks stagen und bei Bedarf stashen.
  5. Commit mit Titel und Beschreibung erstellen.
  6. Push, Upstream setzen, Tags pushen oder Force-with-lease nutzen, wenn noetig.

Konflikte loesen

  1. Merge, Pull, Rebase, Cherry-Pick oder eine andere Operation starten, die Konflikte erzeugt.
  2. Conflict Resolver oeffnen, wenn er erscheint.
  3. Jeden Block mit current, incoming oder both loesen.
  4. Manuellen Editor nutzen, wenn das Ergebnis Feinschliff braucht.
  5. Speichern und Dateien als resolved markieren.
  6. Merge/Rebase im Resolver fortsetzen oder abbrechen.

GitHub Pull Request Flow

  1. Per PAT, Device Flow oder GitHub CLI One-click Login anmelden.
  2. Sicherstellen, dass origin auf ein GitHub-Repository zeigt.
  3. Pull Request aus der Repo-Sidebar erstellen.
  4. PR-CI und Workflow-Status pruefen.
  5. PR oeffnen, kopieren, auschecken, mergen, squashen oder rebasen.

Release Flow

  1. Release aus der Topbar oeffnen.
  2. Release Context aktualisieren.
  3. Major, Minor oder Patch waehlen.
  4. Tag, Release-Name, Target und Markdown Body anpassen.
  5. Optional KI-Release-Notes generieren.
  6. Als normales Release, Draft oder Prerelease veroeffentlichen.

Recovery Flow

  1. Recovery Center im Graph-Bereich oeffnen.
  2. Reflog-Eintraege filtern.
  3. Recovery-Branch aus relevantem Eintrag erstellen.
  4. Detached Checkout oder Hard Reset nur verwenden, wenn du sicher bist.

Agenten-Planning-Workflow

  1. Open-Git-Control starten.
  2. Settings -> API & MCP oeffnen und MCP-URL plus Token kopieren.
  3. Externen Agenten mit MCP-URL oder REST-Endpunkten konfigurieren.
  4. Agent nach get_next_todos oder GET /api/agent/next fragen.
  5. Agent Planungseintraege erstellen oder verschieben lassen.
  6. Git- und GitHub-Arbeit in der Desktop-App behalten.

Lokale Planning API und MCP

Beispiel: naechste Todos fuer ein Repository abrufen.

curl "http://127.0.0.1:2990/api/agent/next?repoPath=<REPO_PATH_URL_ENCODED>&limit=10" \
  -H "x-open-git-control-token: <TOKEN>"

Beispiel: MCP-aehnliche Tools per JSON-RPC listen.

curl -X POST "http://127.0.0.1:2990/mcp" \
  -H "x-open-git-control-token: <TOKEN>" \
  -H "content-type: application/json" \
  -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}"

Beispiel-MCP-Server-Config:

{
  "mcpServers": {
    "open-git-control": {
      "type": "http",
      "url": "http://127.0.0.1:2990/mcp",
      "headers": {
        "x-open-git-control-token": "<TOKEN>"
      }
    }
  }
}

Git installieren

Git muss installiert und im PATH verfuegbar sein.

Windows

  1. Git von git-scm.com/downloads herunterladen.
  2. Windows Installer ausfuehren.
  3. "Git from the command line" aktiviert lassen.
  4. Terminal oder PC neu starten, falls git nicht sofort gefunden wird.

macOS

Homebrew:

brew install git

Apple Command Line Tools:

xcode-select --install

Linux

Debian/Ubuntu:

sudo apt update && sudo apt install git -y

Fedora:

sudo dnf install git -y

Arch:

sudo pacman -S git

Git pruefen

git --version
git config --global user.name "Dein Name"
git config --global user.email "dein@email.de"

Entwicklung

Dependencies installieren:

npm install

Vite und Electron im Development-Modus starten:

npm run dev

App bauen:

npm run build

Tests ausfuehren:

npm run test
npm run test:coverage
npm run test:ci

Verfuegbare Skripte:

Skript Zweck
npm run dev Vite und Electron zusammen starten
npm run electron:dev Electron-Prozess bauen und Electron gegen Vite starten
npm run build TypeScript, Vite Build und Electron-Prozess bauen
npm run build:electron Electron Main/Preload-Prozess kompilieren
npm run dist Paketierte App fuer aktuelle Plattform bauen
npm run dist:win Windows NSIS x64 Paket bauen
npm run dist:linux Linux AppImage und deb Pakete bauen
npm run dist:mac macOS dmg und zip Pakete bauen
npm run release:win Windows Release Assets bauen und publishen
npm run release:linux Linux Release Assets bauen und publishen
npm run release:mac macOS Release Assets bauen und publishen
npm run preview Vite Build previewen
npm run electron:start Electron nach gebautem Electron-Prozess starten
npm run test Unit Tests ausfuehren
npm run test:coverage Tests mit Coverage ausfuehren
npm run test:ci Kompilieren, Tests mit Coverage und Build ausfuehren

Release Builds

Lokale Paket-Artefakte landen in release/.

npm run dist
npm run dist:win
npm run dist:linux
npm run dist:mac

GitHub Publishing laeuft ueber .github/workflows/release.yml. Ein veroeffentlichtes GitHub Release mit Tag wie vX.Y.Z startet Plattform-Builds fuer Windows, Linux und macOS, leitet die Paketversion aus dem Tag ab, validiert erwartete Artefaktnamen, haengt Assets an das Release und aktualisiert die README-Downloadlinks.

Erwartete Release Assets:

  • Open-Git-Control-<version>-win-x64.exe
  • Open-Git-Control-<version>-linux-x86_64.AppImage
  • Open-Git-Control-<version>-linux-amd64.deb
  • Open-Git-Control-<version>-mac-x64.dmg
  • Open-Git-Control-<version>-mac-x64.zip
  • Updater-Metadaten wie latest.yml, latest-linux.yml, latest-mac.yml und Blockmaps

Datenhaltung und Sicherheit

  • Git-Befehle laufen gegen das ausgewaehlte lokale Repository.
  • Repository-Workspace-State wird im Electron-User-Data-Verzeichnis gespeichert.
  • Settings werden lokal gespeichert.
  • Planning-Projekte und Planning-Items werden lokal gespeichert.
  • Die Planning API bindet an 127.0.0.1.
  • Token-geschuetzte Planning-API-Endpunkte sind fuer lokale Prozesse auf derselben Maschine gedacht.
  • GitHub Token, Gemini Key und persistenter Planning-API-Token werden mit OS-gestuetzter Verschluesselung ueber Electron safeStorage gespeichert, wenn verfuegbar.
  • Wenn OS-Verschluesselung nicht verfuegbar ist, werden Secrets nicht persistent gespeichert.
  • Die lokale API stellt nur Planungsdaten bereit; sie exportiert keine Git- oder GitHub-Aktionen.

Troubleshooting

git nicht gefunden

  • Git installieren.
  • Terminal oder PC neu starten.
  • Mit git --version pruefen.

GitHub One-click Login funktioniert nicht

  • GitHub CLI von cli.github.com installieren.
  • Mit gh --version pruefen.
  • PAT oder Device Flow nutzen, wenn GitHub CLI nicht verwendet werden soll.

Device Flow funktioniert nicht

  • GitHub OAuth Client ID in Settings -> Integrations setzen.
  • Alternativ GITHUB_OAUTH_CLIENT_ID vor dem App-Start setzen.

Keine Pull Requests sichtbar

  • Sicherstellen, dass origin auf ein GitHub-Repository zeigt.
  • Im GitHub-Tab anmelden.
  • Repository und PR-Panel aktualisieren.

Push wird vom Secret-Scan blockiert

  • Gemeldete Datei und Zeile pruefen.
  • Secret entfernen oder rotieren, falls es versehentlich committed wurde.
  • Allowlist nur eng fuer absichtliche Dummy-/Beispielwerte setzen.

Auto-Update nicht verfuegbar

  • Auto-Update funktioniert nur in installierten Production Builds.
  • npm run dev und lokale unverpackte Builds nutzen den Updater nicht.

Planning API laeuft nicht auf Port 2990

  • Eventuell nutzt ein anderer lokaler Prozess den Port.
  • In Settings -> API & MCP steht der tatsaechliche Port.
  • OPEN_GIT_CONTROL_API_PORT=<PORT> vor dem App-Start setzen, wenn ein anderer bevorzugter Port gewuenscht ist.

KI-Funktionen reagieren nicht

  • Fuer Ollama Server-URL und Modellnamen pruefen.
  • Fuer Gemini gueltigen API Key speichern und passendes Modell auswaehlen.
  • "Test connection" und "Load models" in Settings -> Integrations nutzen.

Lizenz

Open-Git-Control ist unter der GNU General Public License lizenziert.