Git gebruiken via de editor
Git gebruiken via de editor
Inleiding
Wat is Git?
Git is een versiebeheersysteem voor code dat veel wordt gebruikt in softwareprojecten. Het maakt het onder andere mogelijk om:
- een geschiedenis van de code te hebben, waarin je terug kunt gaan;
- meerdere apparaten te synchroniseren en in team aan dezelfde bestanden te werken met zo weinig mogelijk conflicten;
- meerdere versies van dezelfde code bij te houden, om te ontwikkelen en te experimenteren zonder de werkende versie te breken;
- het project gemakkelijk te back-uppen.
Een map die door Git wordt beheerd, heet een repository (of kortweg _repo_).
Wat is een forge?
Git is software die je lokaal kunt gebruiken (op je eigen machine of in de editor van Leek Wars), maar het kan ook samenwerken met een softwareforge. Dat is een server die Git-repositories host.
Leek Wars ondersteunt meerdere forges; het eenvoudigst is om er een van deze te kiezen:
- GitHub, propriëtaire dienst van Microsoft (VS). Host ook de code van Leek Wars.
- GitLab.com, officiële instantie van GitLab (VS), vrije software die je zelf kunt hosten.
- Bitbucket, propriëtaire dienst van Atlassian (VS).
- Codeberg, officiële instantie van Forgejo, vrije communitysoftware die je zelf kunt hosten, gehost door een Duitse organisatie zonder winstoogmerk.
Je kunt ook andere forges gebruiken die gebaseerd zijn op GitLab, Bitbucket, Forgejo, Gitea of Gogs, bijvoorbeeld framagit.org of gitea.com.
Git gebruiken voor een bestaande AI
Eerst en vooral moet de AI in een map staan, en niet in de root. Maak een map, klik met de rechtermuisknop op de map en kies "Git-repository initialiseren". Die map bevat alle bestanden die in Git worden opgenomen.
Bovenaan de bestandenlijst (linkermenu) verschijnt een Git-tabblad met een vertakkingspictogram. Ga daarheen.
Commits maken
(een commit is een "vastlegging" van je wijzigingen in de geschiedenis)
Controleer bovenaan het Git-tabblad in de keuzelijst of de gewenste repository geselecteerd is (als je er meerdere hebt).
Wanneer bestanden in de repository worden gewijzigd, verschijnen de wijzigingen in het Git-tabblad. Ze zijn voorlopig niet gestaged: het is als een kladversie die nog niet in de geschiedenis is gebeiteld.
Wanneer je wijzigingen in de geschiedenis wilt opslaan, klik je op de knop ➕ om ze te stagen. Vat de wijzigingen in enkele woorden samen in het veld "Commitbericht" en bevestig.
Opmerking: om alle knoppen van het Git-tabblad goed te zien, kan het nodig zijn om het naar rechts te vergroten door de rechterrand te verslepen!
De geschiedenis is een lijst van commits; elke commit is een geheel van wijzigingen, met een datum en een bericht. Het idee is dat je kunt terugvinden van wanneer een bepaalde wijziging dateert, dat je terug kunt gaan, dat je wijzigingen kunt groeperen om te vermijden dat je code maar half werkt...
Verbinden met een forge
Configuratie op de forge
Maak een account aan op een Git-forge en maak er een lege repository aan. Zoek het adres van je repository, dat er ongeveer zo zou moeten uitzien: https://exemple.net/mon-pseudo/mon-depot.git. Het is het adres van de hoofdpagina van je repository, met .git erachter.
Daarna moet je Leek Wars toestemming geven om toegang te krijgen tot de repository. De werkwijze hangt af van de forge.
- GitHub: het eenvoudigst is om de GitHub App van Leek Wars te installeren, rechtstreeks vanuit de editor (zie hieronder). Als alternatief kun je een token aanmaken: klik op je profiel, Settings, Developer Settings (helemaal onderaan). Kies op de pagina die opent Personal access tokens, Tokens (classic). Kies een vervaltermijn (bijvoorbeeld 90 dagen) en geef alleen de rechten die nodig zijn om aan de repository bij te dragen.
- Forgejo: Accountinstellingen, Applicaties, Nieuw toegangstoken. Geef lees- en schrijftoegang tot "repository".
Als je een token hebt aangemaakt, bewaar het dan goed zodat je het niet kwijtraakt!
Configuratie op Leek Wars
Klik onderaan het Git-tabblad op de wolkknop "Remote-instellingen".
Hier declareer je de externe repository (de remote): geef een naam op (bijvoorbeeld origin), plak de URL van de repository en klik op de knop "Toevoegen". Deze stap is onmisbaar voordat je iets kunt pushen.
Kies voor de authenticatie je forge: GitHub, GitLab, Bitbucket of Forgejo.
- GitHub: de hoofdweg is de knop "GitHub App installeren". Kies tijdens de installatie de repositories waartoe je toegang geeft; terug in Leek Wars kun je een van die repositories rechtstreeks selecteren voor de remote. Als alternatief plak je een Personal Access Token in het veld "Toegangstoken".
- GitLab en Bitbucket: plak het token in het veld "Toegangstoken". Als je een zelfgehoste instantie gebruikt in plaats van gitlab.com of bitbucket.org, vink dan "Zelfgehoste instantie" aan en geef het adres van de forge op (dit vakje bestaat ook voor GitHub).
- Forgejo: het vakje "Zelfgehoste instantie" bestaat niet voor deze forge; het adresveld van de instantie wordt altijd getoond (vooraf ingevuld met codeberg.org). Geef zo nodig het adres van je instantie op en plak het token in het veld "Toegangstoken".
Je commits naar de server sturen
Voorlopig is de commitgeschiedenis alleen in Leek Wars opgeslagen. Om ze naar de forge te sturen, doe je een push met de knop ⬆ helemaal onderaan het Git-tabblad.
Telkens als je nieuwe commits wilt versturen, doe je een push.
Andere functies
De editor en het Git-tabblad bieden ook:
- Een repository klonen: menu Bestand → "Git-repo klonen", met opgave van de URL van de repository en de doelmap.
- Pull: knop "Pull" om de commits van de remote op te halen, naar keuze met een merge- of rebase-strategie ("Pull-strategie").
- Branches: met de branchkiezer kun je van branch wisselen, er een aanmaken ("Nieuwe branch...") en de externe branches bekijken.
- Geschiedenis en diff: de knop "Geschiedenis" toont de commits, en een klik op een gewijzigd bestand toont de verschillen.
- Conflicten oplossen: bij een conflict tijdens een merge of rebase kun je die in de editor oplossen en daarna verdergaan.
- Laatste commit ongedaan maken: de wijzigingen van de ongedaan gemaakte commit blijven in de index (staging area).
- Repository compacteren: verkleint de ruimte die de repository inneemt (nuttig voor het quotum).
- Geïntegreerde Git-terminal: toont het logboek van de Git-commando's die de editor heeft uitgevoerd.