🌿Git & GitHub
Harness Maxxing zeigt Git als Bilder: die Branches, die Commits, und was noch nicht gepusht ist. An zwei Stellen:
- In einer Unterhaltung, für alle: Wenn Claude über ein Repository spricht, fügt es einen kleinen
git-Block hinzu, und die App zeichnet den echten Graphen dieses Repositorys, live vom Server (oder von GitHub) gelesen. - Die Git-Seite (Seitenleiste -> Git): alle Repositorys des Servers und deines GitHub-Kontos, mit deinen Rechten für jedes; klicke eines an, um alle seine Branches und Commits zu sehen. Aktiviere sie unter Einstellungen -> Funktionen.
Alles ist schreibgeschützt: Über diese Ansichten wird nie etwas committet, gepusht oder geändert.
Graphen im Chat
Frag zum Beispiel „Wo stehen wir beim Repository acme?", „Was ist noch nicht gepusht?" oder „Zeig mir die Branches": Claude antwortet mit einem Block wie diesem, der als Graph gezeichnet wird (Telegram zeigt den Text):
```git
repo: /root/sites/acme
branches: main, feat-login
limit: 20
highlight: 3f2a9c1
```
| Zeile | Bedeutung |
|---|---|
repo: |
der Ordner des Klons auf dem Server (absoluter Pfad) oder github:owner/name für ein GitHub-Repository |
branches: |
optional: nur diese Branches (sonst alle) |
limit: |
optional: wie viele Commits (standardmäßig 30, höchstens 300) |
highlight: |
optional: Commits, auf die hingewiesen wird (die, über die Claude gerade spricht) |
Klicke einen Commit an, um seine vollständige Nachricht, den Autor, das Datum und die geänderten Dateien (+/- Zeilen) zu sehen. Code zeigt den Text des Blocks; In Git öffnen öffnet die vollständige Seite (wenn die Git-Seite aktiviert ist).
Klicke mit der rechten Maustaste auf ein Branch-Label oder einen Commit (auf dem Handy lange drücken), im Chat oder auf der Git-Seite: Auf GitHub öffnen öffnet diesen Branch oder Commit auf github.com in einem neuen Tab, GitHub-Link kopieren kopiert seine Adresse, und der letzte Eintrag kopiert den Branch-Namen oder die Commit-SHA. Ein Branch oder Commit eines Klons lässt sich öffnen, sobald er auf origin bei GitHub gepusht ist (vorher steht beim Eintrag „noch nicht auf GitHub"); bei einem Graphen, der von GitHub gelesen wird, lässt sich alles öffnen.
Das Repository muss sich im Dateien-Stammverzeichnis befinden (standardmäßig /root): in denselben Ordnern, die die Dateien-Seite zeigt.
Die Git-Seite
Git in der Seitenleiste (Tastenkürzel G dann B), sobald Git- & GitHub-Seite unter Einstellungen -> Funktionen aktiviert ist (standardmäßig aus; die Graphen in Unterhaltungen funktionieren in beiden Fällen).
- Auf diesem Server: jedes Git-Repository, das unter dem Dateien-Stammverzeichnis gefunden wird, jeweils einmal (Ordner wie
node_moduleswerden übersprungen), mit den noch nicht gepushten (↑) oder noch nicht gepullten (↓) Commits, den geänderten Dateien, dem letzten Commit und dem zugehörigen GitHub-Repository. Branches werden hier nicht aufgelistet: Sie stehen im Graphen des Repositorys (eine Karte nennt den ausgecheckten Branch nur, wenn er nichtmain/masterist, oder sie sagt detached). Die zusätzlichen Arbeitsordner eines Klons (git worktree add, ein Ordner pro Branch) werden nicht als eigene Repositorys angezeigt: Der Klon gibt an, wie viele er hat (+3 Worktrees). - GitHub: alle Repositorys deines Kontos (deine eigenen, die deiner Organisationen, die, an denen du mitarbeitest) mit deinem Recht darauf (admin, maintain, write, triage, read), privat oder öffentlich, und „hier geklont", wenn der Server eine Kopie hat.
- Klicke ein Repository an: der Graph seiner Branches und Commits (die 200 neuesten, Mehr anzeigen für bis zu 1.000), die Details eines Commits (auf dem Handy oder Tablet in einem Sheet von unten) und bei GitHub die offenen Pull Requests. Ein mit GitHub verknüpfter Klon hat eine Schaltfläche, um zwischen der Kopie des Servers und GitHub zu wechseln (das jeden Branch zeigt, auch die, die auf dem Server nicht abgerufen wurden). Bei vielen Branches werden die Linien des Graphen auf einem schmalen Bildschirm enger, und lange Branch-Namen enden mit „…" (vollständiger Name beim Darüberfahren).
GitHub verbinden
Die Klons des Servers brauchen nichts. Für dein GitHub-Konto fügst du einen Token hinzu:
- Auf GitHub: Settings -> Developer settings -> Fine-grained tokens -> Generate new token (github.com/settings/personal-access-tokens). Repository access: all repositories; Berechtigungen: Contents, Metadata und Pull requests, nur lesend.
- In Harness Maxxing: Einstellungen -> Schlüssel -> füge ihn hinzu, zum Beispiel als
GITHUB_TOKEN.
Jeder GitHub-Token im Tresor wird verwendet, egal wie er heißt (GITHUB_TOKEN, GITHUB_PAT_BLOG...), dazu der des Memory-Backups: Füge pro Konto einen hinzu, um mehrere Konten zu sehen, oder Tokens, die auf einige Repositorys beschränkt sind. Die Seite listet die verbundenen Konten oben auf (klicke eines an, um zu filtern), führt ihre Repositorys zusammen (jedes nur einmal, mit deinem besten Recht), zeigt, welche Schlüssel jedes Repository sehen, und warnt vor einem Schlüssel, den GitHub ablehnt (abgelaufen, widerrufen), während die anderen weiterhin angezeigt werden. Um ein Repository zu öffnen, verwendet der Server einen Schlüssel, der Zugriff darauf hat. Tokens bleiben auf dem Server: Die Seite sieht immer nur ihre Namen.
Sicherheit
Die Seite liest Repositorys nur: Sie führt nie fetch, pull oder push aus. Ein auf dem Server gefundenes Repository kann von überall stammen (ein entpacktes Archiv, ein von Claude erstellter Klon). Deshalb werden die Einstellungen eines Repositorys, die Git beim Lesen ein Programm ausführen lassen würden (File Monitor, Signaturprüfung, Clean-Filter, externes Diff, Hooks), ausgeschaltet, und ein Repository, das einem anderen Systembenutzer gehört, wird nicht geöffnet (die eigene Eigentümerprüfung von Git). Wenn das Ratenlimit von GitHub erreicht ist, sagt die Seite das, statt Repositorys als fehlend anzuzeigen.