Vad är GitHub? Versionshantering för icke-utvecklare
GitHub är en webbplats som lagrar koden till programvaruprojekt tillsammans med hela historiken, så att du kan se varje ändring, ångra misstag och arbeta i samma projekt som andra. Det bygger på Git, gratis programvara som registrerar ögonblicksbilder av ett projekts filer över tid. Git är verktyget som håller historiken; GitHub är det online-hem där historiken delas, säkerhetskopieras och diskuteras.
Om du bygger med AI handlar GitHub främst om två saker: att äga en kopia av din kod utanför verktyget du byggde den i, och att lämna över den till en utvecklare i det format de redan arbetar med.
Varför det spelar roll när du bygger med AI
En AI-appbyggare skriver och ändrar mycket kod snabbt, och inte varje ändring är en förbättring. Versionshantering är hur du håller det säkert.
- Ångra med trygghet. Varje sparad ändring är en ögonblicksbild. Om AI:n förstör något går du tillbaka till den senaste fungerande versionen.
- Ägande. Kod i ditt egna GitHub-konto stannar hos dig om du byter verktyg, slutar betala för ett eller vill ha en second opinion.
- Att arbeta med utvecklare. Nästan alla utvecklare använder Git dagligen. Ett förråd gör att de kan granska det AI:n skrev, rätta det och skicka tillbaka ändringar.
- Att driftsätta någon annanstans. Många hostingplattformar kan driftsätta direkt från ett GitHub-förråd.
En vardagsliknelse: spåra ändringar plus en delad enhet
Tänk dig ett dokument med spåra ändringar påslaget, sparat på en delad enhet.
- Git är spåra ändringar: varje redigering registreras, med vem som gjorde den, när och varför, och du kan gå tillbaka till vilken version som helst.
- GitHub är den delade enheten: dokumentet ligger online, andra kan få en kopia, och det finns en plats för kommentarer och godkännanden.
- En gren är som att spara en kopia kallad ”utkast – nytt prisavsnitt” så att du kan experimentera utan att röra versionen alla förlitar sig på. Om experimentet fungerar slår du ihop det tillbaka.
Skillnaden mot ett dokument är skalan. En app är hundratals filer, och Git spårar alla tillsammans, så en ögonblicksbild är hela projektets tillstånd på en gång.
Git- och GitHub-termer du kommer att stöta på
| Term | Enkel betydelse |
|---|---|
| Förråd (repo) | En projektmapp med hela historiken |
| Commit | En sparad ögonblicksbild av ändringar, med ett kort meddelande som beskriver dem |
| Gren (branch) | En separat arbetslinje, så att experiment inte stör huvudversionen |
| main | Det vanliga namnet på huvudgrenen — versionen som går live |
| Merge | Att föra in en grens ändringar i en annan gren |
| Merge-konflikt | Två ändringar rörde samma rader; någon måste välja vilken som ska behållas |
| Clone | Ladda ner en fullständig kopia av ett förråd, med historik |
| Push / pull | Skicka dina commits upp till GitHub / hämta andras commits ner |
| Pull request (PR) | En GitHub-sida som föreslår att en gren slås ihop, där folk granskar och diskuterar ändringarna |
| Fork | Din egen kopia av någon annans förråd på GitHub |
| Issue | En att-göra-lista eller buggrapport på GitHub kopplad till förrådet |
.gitignore | En lista över filer som Git aldrig ska registrera, till exempel .env-hemligheter och nedladdade beroenden |
| GitHub Actions | Automatisering som körs på GitHub, till exempel tester vid varje pull request |
Två punkter är värda att understryka. För det första är Git-historiken permanent till sin natur: om ett lösenord committas och pushas tar du inte bort det från historiken genom att radera det i en senare commit. För det andra är en commit bara så användbar som sitt meddelande. ”Rätta dubbelbokning vid bokning av två personer samtidigt” hjälper dig senare; ”uppdatering” gör inte det.
Ett praktiskt exempel: att lämna över en AI-byggd app till en frilansare
Du har byggt en kundportal med en AI-appbyggare. Den fungerar, men du vill att en frilansande utvecklare ska lägga till en knepig integration med ditt bokföringsprogram.
- Koppla projektet till ett nytt privat GitHub-förråd och pusha. Förrådet innehåller nu koden och dess historik.
- Kontrollera vad som finns där. Öppna förrådet på GitHub. Det ska inte finnas någon
.env-fil och inga API-nycklar i koden. Hemligheter ligger kvar i din plattforms inställningar och delas med frilansaren separat, om alls — se miljövariabler och hemligheter. - Bjud in frilansaren som medarbetare till just det förrådet.
- De arbetar på en gren som heter något i stil med
accounting-sync, committar löpande och öppnar en pull request när de är klara. - Du granskar pull requesten. Även utan att läsa kod kan du läsa beskrivningen, se vilka filer som ändrats och ställa frågor i kommentarerna.
- Slå ihop när du är nöjd och pulla sedan ändringarna tillbaka till din byggare, så att du och AI:n fortsätter från den nya versionen.
Under hela processen ser du exakt vad som ändrats och kan ångra det vid behov. Det är hela värdet med versionshantering i ett arbetsflöde. Om du funderar på om du överhuvudtaget ska anlita en utvecklare, se anlita en utvecklare eller bygg med AI.
Vanliga misstag och missuppfattningar
- ”GitHub och Git är samma sak.” Git fungerar utan GitHub; alternativ som GitLab och Bitbucket är också värdar för Git-förråd.
- ”GitHub kör min app.” GitHub lagrar kod. Att köra den för allmänheten är webbhotell, en separat tjänst (även om vissa värdar driftsätter från GitHub).
- Att committa hemligheter. Det mest skadliga och vanligaste misstaget. Använd
.gitignoreför.env-filer, och byt ut alla nycklar som någon gång pushats. - Bara en gren och inga meddelanden. Det är okej för solo-experiment, men ge commits tydliga meddelanden och använd grenar för allt riskfyllt.
- Redigera på två ställen samtidigt. Om du ändrar kod på GitHub och i din AI-byggare utan att hämta ändringar emellan skapar du konflikter. Välj ett ställe att redigera på i taget, och synka innan du byter.
- Att tro att ett privat förråd är en säkerhetskopia av allt. Det innehåller kod, inte innehållet i din databas eller uppladdade filer. Dessa behöver egna säkerhetskopior.
Vad du ska be din AI-byggare om
- ”Lägg till en
.gitignoresom utesluter.env, beroendemappar och byggresultat.” - ”Skriv en README som förklarar hur man installerar, vilka miljövariabler som behövs (endast namn) och hur appen körs.”
- ”Lägg till en
.env.examplemed varje variabelnamn och inga riktiga värden.” - ”Använd tydliga, beskrivande commit-meddelanden för varje ändring.”
De fyra önskemålen ger ett förråd som en utvecklare kan ta över på några minuter. För att flytta appen till egna servrar, se hur du exporterar och self-hostar en AI-byggd app, och för att härda den inför riktiga användare, ta en AI-prototyp till produktion.
GitHub och Mythex
Mythex sparar historiken åt dig på alla planer: efter varje lyckad agentomgång skapar den en checkpoint, som är en Git-ögonblicksbild du kan återgå till. På Pro kan du koppla GitHub och pusha eller pulla projektet mot ditt eget förråd, eller ladda ner hela projektet som ett arkiv; hemligheter och installerade beroenden utesluts från exporter. GitHub här är till för att synka kod, inte för att logga in i Mythex. Se GitHub, export och import i dokumentationen, och prissidan för vad varje plan innehåller.
Frågor
Vad är skillnaden mellan Git och GitHub?
Git är gratis programvara som registrerar historiken för ett projekts filer på vilken dator som helst. GitHub är en webbplats, ägd av Microsoft, som är värd för Git-förråd online och lägger till samarbetsverktyg som pull requests, ärenden och automatisering.
Behöver jag GitHub för att bygga en app med AI?
Nej. Många AI-appbyggare sparar historiken åt dig inne i produkten. GitHub blir användbart när du vill ha en egen kopia av koden, vill samarbeta med en utvecklare eller planerar att hosta appen någon annanstans.
Är GitHub gratis?
GitHub har en gratisplan som inkluderar publika och privata förråd, vilket räcker för de flesta privatpersoner och små team. Betalplaner lägger till teamhantering och extra funktioner; se GitHubs prissida för aktuella detaljer.
Är min kod publik på GitHub?
Bara om du gör förrådet publikt. Privata förråd syns bara för dig och de personer du bjuder in. Även i ett privat förråd ska du aldrig committa lösenord eller API-nycklar.