Het Git-paneel
Stage, beoordeel, commit en push naast de shell waarin de wijzigingen zijn gemaakt.
Druk op Cmd+Shift+G. Het paneel opent de repository waarop je project is gericht. Zie de projectmap voor hoe Zshell die kiest.
Elke actie hier is een Git-opdracht die Zshell voor je uitvoert. De uitvoer wordt getoond wanneer er meer te melden is dan alleen dat de actie klaar is. Er wordt niets herschreven, samengevoegd via squash of geforceerd gepusht tenzij je daarom vraagt.
De Git-werkbalk
Zshell kan een compacte werkbalk onder het actieve tabblad tonen. In een repository toont die de huidige branch en het totale aantal toegevoegde en verwijderde regels; een ongewijzigde werkboom krijgt de groene status Schoon. Niet-gevolgde bestanden tellen mee bij de toegevoegde regels.
- Klik op de branch om lokale branches te doorzoeken en te wisselen. De standaardbranch van de repository wordt gemarkeerd in de lijst.
- Klik op de aantallen wijzigingen om het Git-paneel te openen.
- Buiten een repository laat de modus Altijd tonen een knop Geen Git-repository staan die de initialisatiepagina van het paneel opent.
Kies Verbergen, Automatisch of Altijd tonen onder Instellingen → Algemeen, of stel toolbar.visibility in. Standaard is de werkbalk verborgen. Je kunt een zichtbare werkbalk ook via het contextmenu verbergen.
Gewijzigde bestanden
Bestanden zijn gegroepeerd in conflicten, gestagede wijzigingen en niet-gestagede wijzigingen. Beweeg over een rij voor de knoppen of gebruik het contextmenu:
| Knop | Functie |
|---|---|
| + | Het bestand stagen |
| − | Het bestand uit de staging area halen |
| ↺ | Wijzigingen in het bestand verwerpen |
Alle wijzigingen verwerpen staat in de paneelkop en vraagt eerst om bevestiging. Dit is de enige actie hier die je niet met een andere Git-opdracht ongedaan kunt maken.
Bestanden met conflicten tonen Markeren als opgelost (stagen) in plaats van een gewone stageknop, zodat het oplossen een bewuste stap is en geen neveneffect.
De trechterknop in de kop filtert de lijst op bestandsnaam, de snelste manier om door een grote wijziging te navigeren.
Diffs lezen
Klik op een gewijzigd bestand om de diff in een deelvenster naast de terminal te openen. Via het contextmenu kun je ook Bestand openen (het bewerkbare bestand zelf) of Bestand aan de zijkant openen kiezen.
Grote diffs blijven responsief. Een wijzigingenset met duizend bestanden opent even snel als een wijziging van één regel en scrolt zonder haperingen.
De bediening boven een diff onthoudt twee keuzes voor de hele app:
- Gecombineerd / Gesplitst wisselt tussen één kolom en een indeling naast elkaar.
- Beoordelen / Bewerken verschijnt voor een niet-gestaged bestand in de actuele worktree. Bewerk de nieuwe kant rechtstreeks en sla op met Cmd+S. Sluiten met niet-opgeslagen wijzigingen werkt zoals in de gewone editor.
Gestagede diffs en diffs van historische commits blijven alleen-lezen: het zijn momentopnamen en geen bestanden die Zshell veilig kan schrijven. Als je één diff op Bewerken of Gesplitst zet, wordt de voorkeur voor andere geopende diffs bijgewerkt zonder een ongeschikte diff bewerkbaar te maken.
Committen
Typ een bericht en gebruik de commitknop of kies uit het menu:
- Gestagede wijzigingen committen — commit precies wat je hebt gestaged
- Alles stagen en committen — stage alle gevolgde wijzigingen en commit ze
- Laatste commit aanpassen — voeg de gestagede wijzigingen toe aan de vorige commit
- Alles stagen en laatste commit aanpassen
Recente commits staan daaronder, met Commithash kopiëren en Commitbericht kopiëren in het contextmenu.
Branches
De branchnaam in de kop is een menu. Kies een andere branch om ernaartoe te wisselen, of Nieuwe branch maken… om vanaf het huidige punt te beginnen.
Worktrees
Het Git-paneel toont alle worktrees van de repository met hun branch en checkoutpad. De actieve checkout is gemarkeerd als Huidig. Klik op een worktree om een nieuw terminaltabblad in die map te openen. Elke checkout houdt zo zijn eigen shellcontext binnen hetzelfde project. Lange worktreelijsten scrollen binnen hun eigen begrensde gebied; de sectiekop, commitbediening en lijst met gewijzigde bestanden blijven staan. Klik op de worktreekop om de sectie in of uit te klappen.
Worktrees met een losgekoppelde HEAD tonen Detached HEAD in plaats van een branchnaam. Bare repositories staan voor de volledigheid in de lijst, maar hebben geen werkmap en kunnen niet in een terminaltabblad worden geopend.
Worktree-sessies
Kies in een terminal van een lokale Git-repository Terminal → Nieuwe sessie in een worktree… of druk op Cmd+Opt+T. De contextmenu’s van de tab en de knop + bieden dezelfde actie. Kies een nieuwe of bestaande lokale tak en een map die nog niet bestaat. Nieuwe takken beginnen bij de standaardtak van de repository; Huidige HEAD is een expliciete keuze. Bestaande takken behouden hun huidige commit. De voorgestelde map staat naast de oorspronkelijke checkout.
Gesplitste deelvensters erven de worktree-koppeling, die ook door de opgeslagen indeling wordt hersteld. Bij het sluiten van een gekoppelde sessie kies je Worktree behouden, Worktree verwijderen of Annuleren. Verwijderen kan alleen zonder gewijzigde, niet gevolgde of genegeerde bestanden, commits buiten de vastgelegde basisreferentie, vergrendeling of andere geopende sessies die de checkout gebruiken. De Git-tak blijft altijd behouden.
Een externe terminal kan sessies maken en sluiten met zshell +session. Gebruik voor --project een ID van projects; binnen Zshell wordt automatisch het project van de aanroepende terminal gebruikt. Sessies worden op de achtergrond gemaakt, tenzij je --focus toevoegt. --base HEAD of --base REF kiest een andere basisreferentie en --worktree NEW_DIR stelt de map in. Met --connection FILE kies je zo nodig een actieve instantie. Sluiten behoudt de worktree zonder expliciet --remove-worktree; check geeft aan of veilig opruimen mogelijk is.
zshell +session projects
zshell +session new --project PROJECT_ID --cwd /path/to/repo --branch feat/task
zshell +session list --project PROJECT_ID
zshell +session check --project PROJECT_ID --session SESSION_ID
zshell +session close --project PROJECT_ID --session SESSION_ID --remove-worktreeRemotes
Het menu ⋯ bevat alle acties die met een remote communiceren:
| Actie | Functie |
|---|---|
| Ophalen | Referenties voor remote-tracking bijwerken |
| Pullen (alleen fast-forward) | Pullen zonder een mergecommit te maken |
| Pushen | De huidige branch pushen |
| Branch publiceren | Een branch zonder upstream pushen; bij meerdere remotes kun je kiezen |
| Wijzigingen synchroniseren | Eerst fast-forward pullen, daarna pushen |
| Alle wijzigingen stashen | Alles stashen, inclusief niet-gevolgde bestanden |
| Laatste stash toepassen en verwijderen | De recentste stash herstellen |
Badges naast de branch tonen hoeveel commits je ↓ achterloopt en ↑ voorloopt op de upstream.
Hetzelfde menu bevat Gewijzigde paden kopiëren, Repositorypad kopiëren en Repository tonen in Finder.
Pullen is bewust beperkt tot fast-forward. Als een echte merge of rebase nodig is, meldt Git dat en beslis je in de terminal. Het paneel kiest geen strategie voor je.
Nog geen repository
Als de projectmap geen repository bevat, biedt het paneel Repository initialiseren aan. Dit voert git init in die map uit. Tot dan blijft het paneel op de achtergrond.
Agentbeurten beoordelen
Klik op Wijzigingen beoordelen… in het Git-paneel.
- Laatste beurt vergelijkt begin- en eindsnapshots van de gekozen agent, inclusief alle bewerkingen in dat tijdvak, ongeacht de auteur.
- Niet gecommit vergelijkt HEAD met de werkboom, inclusief gestagede en niet-gevolgde bestanden.
- Volledige branch vergelijkt de gemeenschappelijke voorouder met de gekozen basisbranch met de werkboom, inclusief commits en niet-gecommitte bestanden.
Kies een bestand en een wijzigingsblok. In Laatste beurt registreert Wijzigingsblok behouden de beoordeling; Wijzigingsblok terugdraaien draait het blok terug in de werkboom. Geen van beide wijzigt de Git-index. De oorspronkelijke snapshot en beslissingen blijven zichtbaar.
Terugdraaien wordt geweigerd bij latere bestands- of HEAD-wijzigingen, onveilige paden, actieve agenten of overlappende beurten. Binaire wijzigingen en wijzigingen van alleen rechten zijn alleen-lezen. Bestanden boven 5 MiB zijn niet beschikbaar; dit geldt ook voor snapshots boven 2.048 gewijzigde paden, 25 MiB vastgelegde inhoud of de tijdslimiet.
Snapshots blijven bestaan tijdens de huidige appsessie. Betrouwbare begin- en eindegebeurtenissen zijn nodig. Pi, OpenCode en Grok hebben native integraties. Beveiligde prompts leggen het begin vast, maar hebben ook een eindegebeurtenis nodig. Zonder die gebeurtenis is er geen voltooide snapshot.