# Introduktion till GitHub Hej dĂ€r, framtida utvecklare! 👋 Är du redo att ansluta dig till miljontals kodare runt om i vĂ€rlden? Jag Ă€r verkligen exalterad över att fĂ„ introducera dig till GitHub – tĂ€nk pĂ„ det som en social medieplattform för programmerare, fast istĂ€llet för att dela bilder pĂ„ din lunch, delar vi kod och skapar fantastiska saker tillsammans! HĂ€r Ă€r nĂ„got som verkligen fascinerar mig: varje app pĂ„ din telefon, varje webbplats du besöker och de flesta verktyg du kommer att lĂ€ra dig att anvĂ€nda har byggts av team av utvecklare som samarbetar pĂ„ plattformar precis som GitHub. Den dĂ€r musikappen du Ă€lskar? NĂ„gon som du har bidragit till den. Det dĂ€r spelet du inte kan sluta spela? Japp, förmodligen byggt med hjĂ€lp av GitHub-samarbete. Och nu ska DU lĂ€ra dig hur du blir en del av den fantastiska gemenskapen! Jag vet att det kan kĂ€nnas övervĂ€ldigande i början – jag minns sjĂ€lv hur jag stirrade pĂ„ min första GitHub-sida och tĂ€nkte "Vad i hela friden betyder allt detta?" Men hĂ€r Ă€r grejen: varje enskild utvecklare började precis dĂ€r du Ă€r just nu. I slutet av den hĂ€r lektionen kommer du att ha ditt alldeles egna GitHub-repository (tĂ€nk pĂ„ det som din personliga projektportfölj i molnet), och du kommer att veta hur du sparar ditt arbete, delar det med andra och till och med bidrar till projekt som anvĂ€nds av miljontals mĂ€nniskor. Vi ska ta den hĂ€r resan tillsammans, steg för steg. Ingen stress, ingen press – bara du, jag och nĂ„gra riktigt coola verktyg som snart kommer att bli dina nya bĂ€sta vĂ€nner! ![Intro till GitHub](../../../../translated_images/webdev101-github.8846d7971abef6f947909b4f9d343e2a23778aa716ca6b9d71df7174ee5009ac.sv.png) > Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac) ## Quiz före förelĂ€sningen [Quiz före förelĂ€sningen](https://ff-quizzes.netlify.app) ## Introduktion Innan vi dyker in i det riktigt spĂ€nnande, lĂ„t oss göra din dator redo för lite GitHub-magi! TĂ€nk pĂ„ det som att organisera dina konstnĂ€rsmaterial innan du skapar ett mĂ€sterverk – att ha rĂ€tt verktyg redo gör allt sĂ„ mycket smidigare och mycket roligare. Jag kommer att guida dig genom varje steg i installationen personligen, och jag lovar att det inte Ă€r sĂ„ skrĂ€mmande som det kan verka vid första anblicken. Om nĂ„got inte klickar direkt, Ă€r det helt normalt! Jag minns nĂ€r jag satte upp min första utvecklingsmiljö och kĂ€nde mig som om jag försökte lĂ€sa antika hieroglyfer. Varje enskild utvecklare har varit precis dĂ€r du Ă€r just nu, undrande om de gör rĂ€tt. Spoiler: om du Ă€r hĂ€r och lĂ€r dig, gör du redan rĂ€tt! 🌟 I den hĂ€r lektionen kommer vi att tĂ€cka: - hur du spĂ„rar det arbete du gör pĂ„ din dator - hur du arbetar med projekt tillsammans med andra - hur du bidrar till öppen kĂ€llkod ### Förkunskaper LĂ„t oss göra din dator redo för lite GitHub-magi! Oroa dig inte – den hĂ€r installationen behöver du bara göra en gĂ„ng, och sedan Ă€r du redo för hela din kodningsresa. Okej, lĂ„t oss börja med grunden! Först mĂ„ste vi kontrollera om Git redan finns pĂ„ din dator. Git Ă€r i princip som att ha en superintelligent assistent som kommer ihĂ„g varje liten Ă€ndring du gör i din kod – mycket bĂ€ttre Ă€n att frenetiskt trycka pĂ„ Ctrl+S varannan sekund (vi har alla varit dĂ€r!). LĂ„t oss se om Git redan Ă€r installerat genom att skriva detta magiska kommando i din terminal: `git --version` Om Git inte Ă€r dĂ€r Ă€n, ingen fara! GĂ„ bara till [ladda ner Git](https://git-scm.com/downloads) och hĂ€mta det. NĂ€r du har installerat det, behöver vi introducera Git ordentligt för dig: > 💡 **Första gĂ„ngen du stĂ€ller in**: Dessa kommandon berĂ€ttar för Git vem du Ă€r. Den hĂ€r informationen kommer att bifogas varje commit du gör, sĂ„ vĂ€lj ett namn och en e-postadress som du Ă€r bekvĂ€m med att dela offentligt. ```bash git config --global user.name "your-name" git config --global user.email "your-email" ``` För att kontrollera om Git redan Ă€r konfigurerat kan du skriva: ```bash git config --list ``` Du behöver ocksĂ„ ett GitHub-konto, en kodredigerare (som Visual Studio Code), och du mĂ„ste öppna din terminal (eller: kommandotolken). GĂ„ till [github.com](https://github.com/) och skapa ett konto om du inte redan har ett, eller logga in och fyll i din profil. 💡 **Modernt tips**: ÖvervĂ€g att stĂ€lla in [SSH-nycklar](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) eller anvĂ€nda [GitHub CLI](https://cli.github.com/) för enklare autentisering utan lösenord. ✅ GitHub Ă€r inte det enda kodarkivet i vĂ€rlden; det finns andra, men GitHub Ă€r det mest kĂ€nda. ### Förberedelse Du behöver bĂ„de en mapp med ett kodprojekt pĂ„ din lokala dator (laptop eller PC) och ett offentligt repository pĂ„ GitHub, som kommer att fungera som ett exempel pĂ„ hur man bidrar till andras projekt. ### HĂ„ll din kod sĂ€ker LĂ„t oss prata om sĂ€kerhet en stund – men oroa dig inte, vi ska inte övervĂ€ldiga dig med skrĂ€mmande saker! TĂ€nk pĂ„ dessa sĂ€kerhetsrutiner som att lĂ„sa din bil eller ditt hus. Det Ă€r enkla vanor som blir en andra natur och hĂ„ller ditt hĂ„rda arbete skyddat. Vi kommer att visa dig moderna, sĂ€kra sĂ€tt att arbeta med GitHub redan frĂ„n början. PĂ„ sĂ„ sĂ€tt utvecklar du goda vanor som kommer att tjĂ€na dig vĂ€l under hela din kodningskarriĂ€r. NĂ€r du arbetar med GitHub Ă€r det viktigt att följa bĂ€sta praxis för sĂ€kerhet: | SĂ€kerhetsomrĂ„de | BĂ€sta praxis | Varför det Ă€r viktigt | |-----------------|--------------|-----------------------| | **Autentisering** | AnvĂ€nd SSH-nycklar eller personliga Ă„tkomsttoken | Lösenord Ă€r mindre sĂ€kra och hĂ„ller pĂ„ att fasas ut | | **TvĂ„faktorsautentisering** | Aktivera 2FA pĂ„ ditt GitHub-konto | LĂ€gger till ett extra lager av kontoskydd | | **Repository-sĂ€kerhet** | LĂ€mna aldrig ut kĂ€nslig information | API-nycklar och lösenord ska aldrig finnas i offentliga repos | | **Hantering av beroenden** | Aktivera Dependabot för uppdateringar | HĂ„ller dina beroenden sĂ€kra och uppdaterade | > ⚠ **Viktig sĂ€kerhetspĂ„minnelse**: LĂ€mna aldrig ut API-nycklar, lösenord eller annan kĂ€nslig information i nĂ„got repository. AnvĂ€nd miljövariabler och `.gitignore`-filer för att skydda kĂ€nsliga data. **Modern autentiseringsinstĂ€llning:** ```bash # Generate SSH key (modern ed25519 algorithm) ssh-keygen -t ed25519 -C "your_email@example.com" # Set up Git to use SSH git remote set-url origin git@github.com:username/repository.git ``` > 💡 **Proffstips**: SSH-nycklar eliminerar behovet av att ange lösenord upprepade gĂ„nger och Ă€r sĂ€krare Ă€n traditionella autentiseringsmetoder. --- ## Hantera din kod som ett proffs Okej, NU blir det riktigt spĂ€nnande! 🎉 Vi ska lĂ€ra oss hur man spĂ„rar och hanterar sin kod som proffsen gör, och Ă€rligt talat, det hĂ€r Ă€r en av mina favoritgrejer att lĂ€ra ut eftersom det Ă€r en riktig game-changer. FörestĂ€ll dig detta: du skriver en fantastisk berĂ€ttelse och vill hĂ„lla koll pĂ„ varje utkast, varje briljant redigering och varje "vĂ€nta, det dĂ€r Ă€r genialt!"-ögonblick lĂ€ngs vĂ€gen. Det Ă€r precis vad Git gör för din kod! Det Ă€r som att ha den mest otroliga tidsresande anteckningsboken som minns ALLT – varje tangenttryckning, varje Ă€ndring, varje "oj, det dĂ€r förstörde allt"-ögonblick som du omedelbart kan Ă„ngra. Jag ska vara Ă€rlig – det kan kĂ€nnas övervĂ€ldigande i början. NĂ€r jag började tĂ€nkte jag "Varför kan jag inte bara spara mina filer som vanligt?" Men lita pĂ„ mig: nĂ€r Git klickar för dig (och det kommer det!), kommer du att fĂ„ en sĂ„dan dĂ€r aha-upplevelse dĂ€r du tĂ€nker "Hur har jag NÅGONSIN kunnat koda utan detta?" Det Ă€r som att upptĂ€cka att du kan flyga nĂ€r du har gĂ„tt överallt hela ditt liv! LĂ„t oss sĂ€ga att du har en mapp lokalt med ett kodprojekt och du vill börja spĂ„ra dina framsteg med hjĂ€lp av git – versionshanteringssystemet. Vissa mĂ€nniskor jĂ€mför att anvĂ€nda git med att skriva ett kĂ€rleksbrev till sitt framtida jag. NĂ€r du lĂ€ser dina commit-meddelanden dagar, veckor eller mĂ„nader senare kommer du att kunna minnas varför du tog ett beslut, eller "rulla tillbaka" en Ă€ndring – det vill sĂ€ga, nĂ€r du skriver bra "commit-meddelanden". ### Uppgift: Skapa ditt första repository! > 🎯 **Din uppgift (och jag Ă€r sĂ„ exalterad för din skull!)**: Vi ska skapa ditt allra första GitHub-repository tillsammans! NĂ€r vi Ă€r klara hĂ€r kommer du att ha din egen lilla hörna av internet dĂ€r din kod bor, och du kommer att ha gjort din första "commit" (det Ă€r utvecklarsprĂ„k för att spara ditt arbete pĂ„ ett riktigt smart sĂ€tt). > > Det hĂ€r Ă€r Ă€rligt talat ett sĂ„ speciellt ögonblick – du Ă€r pĂ„ vĂ€g att officiellt ansluta dig till den globala gemenskapen av utvecklare! Jag minns fortfarande spĂ€nningen nĂ€r jag skapade mitt första repo och tĂ€nkte "Wow, jag gör verkligen det hĂ€r!" LĂ„t oss gĂ„ igenom det hĂ€r Ă€ventyret tillsammans, steg för steg. Ta din tid med varje del – det finns inget pris för att skynda sig, och jag lovar att varje steg kommer att vara logiskt. Kom ihĂ„g, varje kodningsstjĂ€rna du beundrar satt en gĂ„ng precis dĂ€r du Ă€r nu, redo att skapa sitt första repository. Hur coolt Ă€r inte det? > Titta pĂ„ videon > > [![Git och GitHub-grunder video](https://img.youtube.com/vi/9R31OUPpxU4/0.jpg)](https://www.youtube.com/watch?v=9R31OUPpxU4) **LĂ„t oss göra detta tillsammans:** 1. **Skapa ditt repository pĂ„ GitHub**. GĂ„ till GitHub.com och leta efter den ljusgröna **New**-knappen (eller **+**-symbolen lĂ€ngst upp till höger). Klicka pĂ„ den och vĂ€lj **New repository**. SĂ„ hĂ€r gör du: 1. Ge ditt repository ett namn – vĂ€lj nĂ„got som betyder nĂ„got för dig! 1. LĂ€gg till en beskrivning om du vill (det hjĂ€lper andra att förstĂ„ vad ditt projekt handlar om) 1. BestĂ€m om du vill att det ska vara offentligt (alla kan se det) eller privat (bara för dig) 1. Jag rekommenderar att du kryssar i rutan för att lĂ€gga till en README-fil – det Ă€r som projektets framsida 1. Klicka pĂ„ **Create repository** och fira – du har precis skapat ditt första repo! 🎉 2. **Navigera till din projektmapp**. Nu ska vi öppna din terminal (oroa dig inte, det Ă€r inte sĂ„ lĂ€skigt som det ser ut!). Vi mĂ„ste berĂ€tta för din dator var dina projektfiler finns. Skriv detta kommando: ```bash cd [name of your folder] ``` **Vad vi gör hĂ€r:** - Vi sĂ€ger i princip "Hej dator, ta mig till min projektmapp" - Det Ă€r som att öppna en specifik mapp pĂ„ ditt skrivbord, men vi gör det med textkommandon - ErsĂ€tt `[name of your folder]` med det faktiska namnet pĂ„ din projektmapp 3. **Förvandla din mapp till ett Git-repository**. HĂ€r hĂ€nder magin! Skriv: ```bash git init ``` **HĂ€r Ă€r vad som just hĂ€nde (rĂ€tt coolt!):** - Git skapade precis en dold `.git`-mapp i ditt projekt – du kommer inte att se den, men den finns dĂ€r! - Din vanliga mapp Ă€r nu ett "repository" som kan spĂ„ra varje Ă€ndring du gör - TĂ€nk pĂ„ det som att ge din mapp superkrafter för att komma ihĂ„g allt 4. **Kolla vad som hĂ€nder**. LĂ„t oss se vad Git tycker om ditt projekt just nu: ```bash git status ``` **FörstĂ„ vad Git sĂ€ger till dig:** Du kanske ser nĂ„got som ser ut sĂ„ hĂ€r: ```output Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: file.txt modified: file2.txt ``` **Ingen panik! HĂ€r Ă€r vad det betyder:** - Filer i **rött** Ă€r filer som har Ă€ndringar men inte Ă€r redo att sparas Ă€n - Filer i **grönt** (nĂ€r du ser dem) Ă€r redo att sparas - Git Ă€r hjĂ€lpsam och berĂ€ttar exakt vad du kan göra hĂ€rnĂ€st > 💡 **Proffstips**: Kommandot `git status` Ă€r din bĂ€sta vĂ€n! AnvĂ€nd det nĂ€r du Ă€r osĂ€ker pĂ„ vad som hĂ€nder. Det Ă€r som att frĂ„ga Git "Hej, vad Ă€r lĂ€get just nu?" 5. **Gör dina filer redo att sparas** (detta kallas "staging"): ```bash git add . ``` **Vad vi just gjorde:** - Vi sa till Git "Hej, jag vill inkludera ALLA mina filer i nĂ€sta sparning" - `.` Ă€r som att sĂ€ga "allt i den hĂ€r mappen" - Nu Ă€r dina filer "staged" och redo för nĂ€sta steg **Vill du vara mer selektiv?** Du kan lĂ€gga till bara specifika filer: ```bash git add [file or folder name] ``` **Varför skulle du vilja göra detta?** - Ibland vill du spara relaterade Ă€ndringar tillsammans - Det hjĂ€lper dig att organisera ditt arbete i logiska delar - Gör det lĂ€ttare att förstĂ„ vad som Ă€ndrades och nĂ€r **Ångrat dig?** Ingen fara! Du kan ta bort filer frĂ„n staging sĂ„ hĂ€r: ```bash # Unstage everything git reset # Unstage just one file git reset [file name] ``` Oroa dig inte – detta raderar inte ditt arbete, det tar bara bort filer frĂ„n "redo att spara"-högen. 6. **Spara ditt arbete permanent** (gör din första commit!): ```bash git commit -m "first commit" ``` **🎉 Grattis! Du har just gjort din första commit!** **HĂ€r Ă€r vad som just hĂ€nde:** - Git tog en "ögonblicksbild" av alla dina staged-filer vid just detta ögonblick - Ditt commit-meddelande "first commit" förklarar vad denna sparpunkt handlar om - Git gav denna ögonblicksbild ett unikt ID sĂ„ att du alltid kan hitta den senare - Du har officiellt börjat spĂ„ra ditt projekts historia! > 💡 **Framtida commit-meddelanden**: För dina nĂ€sta commits, var mer beskrivande! IstĂ€llet för "uppdaterade grejer", prova "LĂ€gg till kontaktformulĂ€r pĂ„ hemsidan" eller "Fixade bugg i navigationsmenyn". Ditt framtida jag kommer att tacka dig! 7. **Koppla ditt lokala projekt till GitHub**. Just nu finns ditt projekt bara pĂ„ din dator. LĂ„t oss koppla det till ditt GitHub-repository sĂ„ att du kan dela det med vĂ€rlden! Först, gĂ„ till din GitHub-repository-sida och kopiera URL:en. GĂ„ sedan tillbaka hit och skriv: ```bash git remote add origin https://github.com/username/repository_name.git ``` (ErsĂ€tt den URL:en med din faktiska repository-URL!) **Vad vi just gjorde:** - Vi skapade en koppling mellan ditt lokala projekt och ditt GitHub-repository. - "Origin" Ă€r bara ett smeknamn för ditt GitHub-repository – det Ă€r som att lĂ€gga till en kontakt i din telefon. - Nu vet ditt lokala Git var det ska skicka din kod nĂ€r du Ă€r redo att dela den. 💡 **Enklare sĂ€tt**: Om du har GitHub CLI installerat kan du göra detta med ett enda kommando: ```bash gh repo create my-repo --public --push --source=. ``` 8. **Skicka din kod till GitHub** (den stora stunden!): ```bash git push -u origin main ``` **🚀 Nu hĂ€nder det! Du laddar upp din kod till GitHub!** **Vad som hĂ€nder:** - Dina commits skickas frĂ„n din dator till GitHub. - Flaggan `-u` skapar en permanent koppling sĂ„ att framtida pushar blir enklare. - "main" Ă€r namnet pĂ„ din primĂ€ra branch (som huvudmappen). - Efter detta kan du bara skriva `git push` för framtida uppladdningar! 💡 **Snabb notering**: Om din branch heter nĂ„got annat (som "master"), anvĂ€nd det namnet istĂ€llet. Du kan kontrollera med `git branch --show-current`. 9. **Din nya dagliga kodningsrytm** (det Ă€r hĂ€r det blir beroendeframkallande!): FrĂ„n och med nu, varje gĂ„ng du gör Ă€ndringar i ditt projekt, har du denna enkla trestegsprocess: ```bash git add . git commit -m "describe what you changed" git push ``` **Detta blir din kodningspuls:** - Gör nĂ„gra fantastiska Ă€ndringar i din kod ✹ - Stagea dem med `git add` ("Hej Git, uppmĂ€rksamma dessa Ă€ndringar!") - Spara dem med `git commit` och en beskrivande meddelande (framtida du kommer att tacka dig!) - Dela dem med vĂ€rlden med `git push` 🚀 - Upprepa – seriöst, detta blir lika naturligt som att andas! Jag Ă€lskar detta arbetsflöde eftersom det Ă€r som att ha flera sparpunkter i ett videospel. Gjorde du en Ă€ndring du Ă€lskar? Commita den! Vill du prova nĂ„got riskabelt? Inga problem – du kan alltid gĂ„ tillbaka till din senaste commit om saker gĂ„r snett! > 💡 **Tips**: Du kanske ocksĂ„ vill anvĂ€nda en `.gitignore`-fil för att förhindra att filer du inte vill spĂ„ra dyker upp pĂ„ GitHub - som den dĂ€r anteckningsfilen du lagrar i samma mapp men som inte har nĂ„gon plats i ett offentligt repository. Du kan hitta mallar för `.gitignore`-filer pĂ„ [.gitignore templates](https://github.com/github/gitignore) eller skapa en med [gitignore.io](https://www.toptal.com/developers/gitignore). #### Moderna Git-arbetsflöden ÖvervĂ€g att anvĂ€nda dessa moderna metoder: - **Conventional Commits**: AnvĂ€nd ett standardiserat format för commit-meddelanden som `feat:`, `fix:`, `docs:` osv. LĂ€s mer pĂ„ [conventionalcommits.org](https://www.conventionalcommits.org/) - **Atomiska commits**: LĂ„t varje commit representera en enda logisk Ă€ndring. - **Frekventa commits**: Commita ofta med beskrivande meddelanden istĂ€llet för stora, sĂ€llsynta commits. #### Commit-meddelanden En bra Git commit-rubrik avslutar följande mening: Om den tillĂ€mpas kommer denna commit att För rubriken, anvĂ€nd imperativ, presens: "Ă€ndra" inte "Ă€ndrade" eller "Ă€ndringar". Precis som i rubriken, anvĂ€nd ocksĂ„ imperativ, presens i brödtexten (valfritt). Brödtexten bör inkludera motivationen för Ă€ndringen och kontrastera detta med tidigare beteende. Du förklarar `varför`, inte `hur`. ✅ Ta nĂ„gra minuter och surfa runt pĂ„ GitHub. Kan du hitta ett riktigt bra commit-meddelande? Kan du hitta ett riktigt minimalt? Vilken information tycker du Ă€r mest viktig och anvĂ€ndbar att förmedla i ett commit-meddelande? ## Att arbeta med andra (den roliga delen!) HĂ„ll i hatten, för NU blir GitHub helt magiskt! đŸȘ„ Du har bemĂ€strat att hantera din egen kod, men nu dyker vi in i min absoluta favoritdel – att samarbeta med fantastiska mĂ€nniskor frĂ„n hela vĂ€rlden. FörestĂ€ll dig detta: du vaknar imorgon och ser att nĂ„gon i Tokyo har förbĂ€ttrat din kod medan du sov. Sedan fixar nĂ„gon i Berlin en bugg du har kĂ€mpat med. PĂ„ eftermiddagen har en utvecklare i SĂŁo Paulo lagt till en funktion du aldrig ens tĂ€nkt pĂ„. Det Ă€r inte science fiction – det Ă€r bara en vanlig tisdag i GitHub-universumet! Det som verkligen gör mig exalterad Ă€r att de samarbetsfĂ€rdigheter du Ă€r pĂ„ vĂ€g att lĂ€ra dig? Det Ă€r EXAKT samma arbetsflöden som team pĂ„ Google, Microsoft och dina favoritstartups anvĂ€nder varje dag. Du lĂ€r dig inte bara ett coolt verktyg – du lĂ€r dig det hemliga sprĂ„ket som fĂ„r hela mjukvaruvĂ€rlden att samarbeta. Seriöst, nĂ€r du vĂ€l upplever kĂ€nslan av att nĂ„gon godkĂ€nner din första pull request, kommer du att förstĂ„ varför utvecklare blir sĂ„ passionerade över öppen kĂ€llkod. Det Ă€r som att vara en del av vĂ€rldens största, mest kreativa grupparbete! > Titta pĂ„ video > > [![Git och GitHub-grunder video](https://img.youtube.com/vi/bFCM-PC3cu8/0.jpg)](https://www.youtube.com/watch?v=bFCM-PC3cu8) Huvudsyftet med att lĂ€gga upp saker pĂ„ GitHub var att göra det möjligt att samarbeta med andra utvecklare. I ditt repository, navigera till `Insights > Community` för att se hur ditt projekt jĂ€mför sig med rekommenderade gemenskapsstandarder. Vill du fĂ„ ditt repository att se professionellt och vĂ€lkomnande ut? GĂ„ till ditt repository och klicka pĂ„ `Insights > Community`. Denna coola funktion visar dig hur ditt projekt jĂ€mför sig med vad GitHub-gemenskapen anser vara "bra repository-praktiker." > 🎯 **FĂ„ ditt projekt att glĂ€nsa**: Ett vĂ€lorganiserat repository med bra dokumentation Ă€r som att ha en ren, vĂ€lkomnande butik. Det visar att du bryr dig om ditt arbete och fĂ„r andra att vilja bidra! **Detta gör ett repository fantastiskt:** | Vad du ska lĂ€gga till | Varför det Ă€r viktigt | Vad det gör för dig | |------------------------|-----------------------|---------------------| | **Beskrivning** | Första intrycket Ă€r viktigt! | Folk vet direkt vad ditt projekt handlar om | | **README** | Ditt projekts förstasida | Som en vĂ€nlig guide för nya besökare | | **Riktlinjer för bidrag** | Visar att du vĂ€lkomnar hjĂ€lp | Folk vet exakt hur de kan hjĂ€lpa dig | | **Uppförandekod** | Skapar en vĂ€nlig miljö | Alla kĂ€nner sig vĂ€lkomna att delta | | **Licens** | Juridisk klarhet | Andra vet hur de kan anvĂ€nda din kod | | **SĂ€kerhetspolicy** | Visar att du Ă€r ansvarsfull | Demonstrerar professionella metoder | > 💡 **Proffstips**: GitHub tillhandahĂ„ller mallar för alla dessa filer. NĂ€r du skapar ett nytt repository, markera rutorna för att automatiskt generera dessa filer. **Moderna GitHub-funktioner att utforska:** đŸ€– **Automation & CI/CD:** - **GitHub Actions** för automatiserad testning och distribution. - **Dependabot** för automatiska uppdateringar av beroenden. 💬 **Gemenskap & Projektledning:** - **GitHub Discussions** för gemenskapskonversationer utöver issues. - **GitHub Projects** för projektledning i kanban-stil. - **Regler för branch-skydd** för att upprĂ€tthĂ„lla kodkvalitetsstandarder. Alla dessa resurser kommer att gynna onboarding av nya teammedlemmar. Och det Ă€r vanligtvis sĂ„dana saker som nya bidragsgivare tittar pĂ„ innan de ens tittar pĂ„ din kod, för att ta reda pĂ„ om ditt projekt Ă€r rĂ€tt plats för dem att spendera sin tid. ✅ README-filer, Ă€ven om de tar tid att förbereda, förbises ofta av upptagna projektledare. Kan du hitta ett exempel pĂ„ en sĂ€rskilt beskrivande? Obs: det finns nĂ„gra [verktyg för att skapa bra README-filer](https://www.makeareadme.com/) som du kanske vill prova. ### Uppgift: SlĂ„ ihop lite kod Bidragsdokument hjĂ€lper mĂ€nniskor att bidra till projektet. Det förklarar vilka typer av bidrag du letar efter och hur processen fungerar. Bidragsgivare mĂ„ste gĂ„ igenom en serie steg för att kunna bidra till ditt repository pĂ„ GitHub: 1. **Forka ditt repository**. Du kommer förmodligen vilja att folk _forkar_ ditt projekt. Forkning innebĂ€r att skapa en kopia av ditt repository pĂ„ deras GitHub-profil. 1. **Klona**. DĂ€refter kommer de att klona projektet till sin lokala dator. 1. **Skapa en branch**. Du vill be dem att skapa en _branch_ för sitt arbete. 1. **Fokusera sin Ă€ndring pĂ„ ett omrĂ„de**. Be bidragsgivare att koncentrera sina bidrag pĂ„ en sak i taget – pĂ„ sĂ„ sĂ€tt ökar chansen att du kan _slĂ„ ihop_ deras arbete. TĂ€nk dig att de fixar en bugg, lĂ€gger till en ny funktion och uppdaterar flera tester – vad hĂ€nder om du vill, eller bara kan implementera 2 av 3, eller 1 av 3 Ă€ndringar? ✅ FörestĂ€ll dig en situation dĂ€r branches Ă€r sĂ€rskilt viktiga för att skriva och leverera bra kod. Vilka anvĂ€ndningsomrĂ„den kan du komma pĂ„? > Observera, var den förĂ€ndring du vill se i vĂ€rlden och skapa branches för ditt eget arbete ocksĂ„. Alla commits du gör kommer att göras pĂ„ den branch du för nĂ€rvarande Ă€r "utcheckad" till. AnvĂ€nd `git status` för att se vilken branch det Ă€r. LĂ„t oss gĂ„ igenom ett arbetsflöde för bidragsgivare. Anta att bidragsgivaren redan har _forkat_ och _klonat_ repositoryt sĂ„ att de har ett Git-repository redo att arbeta med pĂ„ sin lokala dator: 1. **Skapa en branch**. AnvĂ€nd kommandot `git branch` för att skapa en branch som kommer att innehĂ„lla de Ă€ndringar de avser att bidra med: ```bash git branch [branch-name] ``` > 💡 **Modern metod**: Du kan ocksĂ„ skapa och byta till den nya branchen med ett enda kommando: ```bash git switch -c [branch-name] ``` 1. **Byt till arbetsbranch**. Byt till den angivna branchen och uppdatera arbetskatalogen med `git switch`: ```bash git switch [branch-name] ``` > 💡 **Modern notering**: `git switch` Ă€r den moderna ersĂ€ttningen för `git checkout` nĂ€r du byter branch. Det Ă€r tydligare och sĂ€krare för nybörjare. 1. **Utför arbete**. Vid denna punkt vill du lĂ€gga till dina Ă€ndringar. Glöm inte att informera Git om det med följande kommandon: ```bash git add . git commit -m "my changes" ``` > ⚠ **Kvalitet pĂ„ commit-meddelanden**: Se till att du ger din commit ett bra namn, bĂ„de för din egen skull och för projektledaren för repositoryt du hjĂ€lper till med. Var specifik om vad du Ă€ndrade! 1. **Kombinera ditt arbete med `main`-branchen**. Vid nĂ„got tillfĂ€lle Ă€r du klar med ditt arbete och vill kombinera det med `main`-branchen. `main`-branchen kan ha Ă€ndrats under tiden, sĂ„ se till att du först uppdaterar den till det senaste med följande kommandon: ```bash git switch main git pull ``` Vid denna punkt vill du se till att eventuella _konflikter_, situationer dĂ€r Git inte enkelt kan _kombinera_ Ă€ndringarna, uppstĂ„r i din arbetsbranch. Kör dĂ€rför följande kommandon: ```bash git switch [branch_name] git merge main ``` Kommandot `git merge main` kommer att ta in alla Ă€ndringar frĂ„n `main` till din branch. Förhoppningsvis kan du bara fortsĂ€tta. Om inte, kommer VS Code att visa dig var Git Ă€r _förvirrad_ och du kan Ă€ndra de berörda filerna för att ange vilket innehĂ„ll som Ă€r mest korrekt. 💡 **Modern alternativ**: ÖvervĂ€g att anvĂ€nda `git rebase` för en renare historik: ```bash git rebase main ``` Detta spelar upp dina commits ovanpĂ„ den senaste main-branchen och skapar en linjĂ€r historik. 1. **Skicka ditt arbete till GitHub**. Att skicka ditt arbete till GitHub innebĂ€r tvĂ„ saker. Att pusha din branch till ditt repository och sedan öppna en PR, Pull Request. ```bash git push --set-upstream origin [branch-name] ``` Kommandot ovan skapar branchen pĂ„ ditt forkade repository. 1. **Öppna en PR**. NĂ€sta steg Ă€r att öppna en PR. Du gör det genom att navigera till det forkade repositoryt pĂ„ GitHub. Du kommer att se en indikation pĂ„ GitHub dĂ€r det frĂ„gar om du vill skapa en ny PR, du klickar pĂ„ det och tas till ett grĂ€nssnitt dĂ€r du kan Ă€ndra commit-meddelandets titel, ge det en mer lĂ€mplig beskrivning. Nu kommer projektledaren för det repository du forkade att se denna PR och _hĂ„ller tummarna_ att de uppskattar och _slĂ„r ihop_ din PR. Du Ă€r nu en bidragsgivare, yay :) 💡 **Modernt tips**: Du kan ocksĂ„ skapa PRs med hjĂ€lp av GitHub CLI: ```bash gh pr create --title "Your PR title" --body "Description of changes" ``` 🔧 **BĂ€sta praxis för PRs**: - LĂ€nka till relaterade issues med nyckelord som "Fixes #123". - LĂ€gg till skĂ€rmdumpar för UI-Ă€ndringar. - BegĂ€r specifika granskare. - AnvĂ€nd utkast-PRs för pĂ„gĂ„ende arbete. - Se till att alla CI-kontroller passerar innan du begĂ€r granskning. 1. **Rensa upp**. Det anses vara god praxis att _rensa upp_ efter att du framgĂ„ngsrikt har slagit ihop en PR. Du vill rensa bĂ„de din lokala branch och den branch du pushade till GitHub. Först, ta bort den lokalt med följande kommando: ```bash git branch -d [branch-name] ``` Se till att du gĂ„r till GitHub-sidan för det forkade repositoryt och tar bort den fjĂ€rrstyrda branchen du just pushade till det. `Pull request` verkar som en konstig term eftersom du egentligen vill pusha dina Ă€ndringar till projektet. Men projektledaren (projektĂ€garen) eller kĂ€rnteamet behöver övervĂ€ga dina Ă€ndringar innan de slĂ„r ihop dem med projektets "main"-branch, sĂ„ du begĂ€r egentligen ett beslut om Ă€ndringsförslag frĂ„n en projektledare. En pull request Ă€r platsen för att jĂ€mföra och diskutera skillnaderna som introduceras pĂ„ en branch med granskningar, kommentarer, integrerade tester och mer. En bra pull request följer ungefĂ€r samma regler som ett commit-meddelande. Du kan lĂ€gga till en referens till ett issue i issue-tracker, nĂ€r ditt arbete till exempel löser ett problem. Detta görs med ett `#` följt av numret pĂ„ ditt issue. Till exempel `#97`. đŸ€žHĂ„ller tummarna att alla kontroller gĂ„r igenom och att projektĂ€garen/-Ă€garna slĂ„r ihop dina Ă€ndringar med projektetđŸ€ž Uppdatera din aktuella lokala arbetsgren med alla nya commits frĂ„n motsvarande fjĂ€rrgren pĂ„ GitHub: `git pull` ## Bidra till Open Source (Din chans att göra skillnad!) Är du redo för nĂ„got som kommer att blĂ„sa dig av stolen? đŸ€Ż LĂ„t oss prata om att bidra till open source-projekt – jag fĂ„r gĂ„shud bara av att tĂ€nka pĂ„ att dela detta med dig! Det hĂ€r Ă€r din chans att bli en del av nĂ„got verkligen extraordinĂ€rt. TĂ€nk dig att förbĂ€ttra verktyg som miljontals utvecklare anvĂ€nder varje dag, eller att fixa en bugg i en app som dina vĂ€nner Ă€lskar. Det Ă€r inte bara en dröm – det Ă€r vad open source-bidrag handlar om! HĂ€r Ă€r vad som ger mig rysningar varje gĂ„ng jag tĂ€nker pĂ„ det: varje verktyg du har lĂ€rt dig att anvĂ€nda – din kodredigerare, de ramverk vi kommer att utforska, till och med webblĂ€saren du lĂ€ser detta i – började med nĂ„gon precis som du som gjorde sitt allra första bidrag. Den briljanta utvecklaren som byggde din favorit-VS Code-tillĂ€gg? De var en gĂ„ng nybörjare som klickade pĂ„ "create pull request" med skakiga hĂ€nder, precis som du Ă€r pĂ„ vĂ€g att göra. Och hĂ€r Ă€r det vackraste: open source-communityn Ă€r som internetets största gruppkram. De flesta projekt letar aktivt efter nykomlingar och har problem taggade "good first issue" specifikt för personer som du! UnderhĂ„llare blir genuint glada nĂ€r de ser nya bidragsgivare eftersom de minns sina egna första steg. Du lĂ€r dig inte bara att koda hĂ€r – du förbereder dig för att gĂ„ med i en global familj av skapare som vaknar varje dag och tĂ€nker "Hur kan vi göra den digitala vĂ€rlden lite bĂ€ttre?" VĂ€lkommen till klubben! 🌟 Först, lĂ„t oss hitta ett repository (eller **repo**) pĂ„ GitHub som intresserar dig och som du vill bidra med en Ă€ndring till. Du kommer att vilja kopiera dess innehĂ„ll till din dator. ✅ Ett bra sĂ€tt att hitta 'nybörjarvĂ€nliga' repos Ă€r att [söka efter taggen 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/). ![Kopiera ett repo lokalt](../../../../translated_images/clone_repo.5085c48d666ead57664f050d806e325d7f883be6838c821e08bc823ab7c66665.sv.png) Det finns flera sĂ€tt att kopiera kod. Ett sĂ€tt Ă€r att "klona" innehĂ„llet i repositoryn, med hjĂ€lp av HTTPS, SSH eller GitHub CLI (Command Line Interface). Öppna din terminal och klona repositoryn sĂ„ hĂ€r: ```bash # Using HTTPS git clone https://github.com/ProjectURL # Using SSH (requires SSH key setup) git clone git@github.com:username/repository.git # Using GitHub CLI gh repo clone username/repository ``` För att arbeta med projektet, byt till rĂ€tt mapp: `cd ProjectURL` Du kan ocksĂ„ öppna hela projektet med: - **[GitHub Codespaces](https://github.com/features/codespaces)** - GitHubs molnutvecklingsmiljö med VS Code i webblĂ€saren - **[GitHub Desktop](https://desktop.github.com/)** - En GUI-applikation för Git-operationer - **[GitHub.dev](https://github.dev)** - Tryck pĂ„ `.`-tangenten pĂ„ valfri GitHub-repo för att öppna VS Code i webblĂ€saren - **VS Code** med GitHub Pull Requests-tillĂ€gget Slutligen kan du ladda ner koden i en zippad mapp. ### NĂ„gra fler intressanta saker om GitHub Du kan stjĂ€rnmĂ€rka, bevaka och/eller "forka" valfri offentlig repository pĂ„ GitHub. Du hittar dina stjĂ€rnmĂ€rkta repositories i rullgardinsmenyn lĂ€ngst upp till höger. Det Ă€r som att bokmĂ€rka, fast för kod. Projekt har en problemspĂ„rare, oftast pĂ„ GitHub i fliken "Issues" om inte annat anges, dĂ€r folk diskuterar problem relaterade till projektet. Och fliken Pull Requests Ă€r dĂ€r folk diskuterar och granskar Ă€ndringar som Ă€r pĂ„ gĂ„ng. Projekt kan ocksĂ„ ha diskussioner i forum, e-postlistor eller chattkanaler som Slack, Discord eller IRC. 🔧 **Moderna GitHub-funktioner**: - **GitHub Discussions** - Inbyggt forum för community-konversationer - **GitHub Sponsors** - Stöd underhĂ„llare ekonomiskt - **Security tab** - Rapporter om sĂ„rbarheter och sĂ€kerhetsrĂ„dgivningar - **Actions tab** - Se automatiserade arbetsflöden och CI/CD-pipelines - **Insights tab** - Analys om bidragsgivare, commits och projektets hĂ€lsa - **Projects tab** - GitHubs inbyggda projektledningsverktyg ✅ Utforska din nya GitHub-repo och prova nĂ„gra saker, som att redigera instĂ€llningar, lĂ€gga till information i din repo, skapa ett projekt (som en Kanban-tavla) och stĂ€lla in GitHub Actions för automatisering. Det finns mycket du kan göra! --- ## 🚀 Utmaning Okej, det Ă€r dags att sĂ€tta dina nya GitHub-superkrafter pĂ„ prov! 🚀 HĂ€r Ă€r en utmaning som kommer att fĂ„ allt att klicka pĂ„ det mest tillfredsstĂ€llande sĂ€ttet: Ta med en vĂ€n (eller den familjemedlem som alltid frĂ„gar vad du hĂ„ller pĂ„ med med allt detta "datorgrejs") och ge er ut pĂ„ ett gemensamt kodningsĂ€ventyr tillsammans! HĂ€r hĂ€nder den verkliga magin – skapa ett projekt, lĂ„t dem forka det, skapa nĂ„gra grenar och slĂ„ ihop Ă€ndringar som de proffs ni hĂ„ller pĂ„ att bli. Jag ska inte ljuga – ni kommer förmodligen att skratta vid nĂ„got tillfĂ€lle (sĂ€rskilt nĂ€r ni bĂ„da försöker Ă€ndra samma rad), kanske klia er i huvudet av förvirring, men ni kommer definitivt att ha de dĂ€r fantastiska "aha!"-ögonblicken som gör allt lĂ€rande vĂ€rt det. Dessutom finns det nĂ„got speciellt med att dela den första lyckade sammanslagningen med nĂ„gon annan – det Ă€r som en liten fest för hur lĂ„ngt ni har kommit! Har du ingen kodningskompis Ă€n? Ingen fara! GitHub-communityn Ă€r full av otroligt vĂ€lkomnande mĂ€nniskor som minns hur det var att vara ny. Leta efter repositories med etiketten "good first issue" – de sĂ€ger i princip "Hej nybörjare, kom och lĂ€r dig med oss!" Hur fantastiskt Ă€r inte det? ## Quiz efter förelĂ€sningen [Quiz efter förelĂ€sningen](https://ff-quizzes.netlify.app/web/en/) ## Granska & FortsĂ€tt LĂ€ra Puh! 🎉 Titta pĂ„ dig – du har precis bemĂ€strat GitHub-grunderna som en riktig mĂ€stare! Om din hjĂ€rna kĂ€nns lite full just nu, Ă€r det helt normalt och Ă€rligt talat ett bra tecken. Du har precis lĂ€rt dig verktyg som tog mig veckor att kĂ€nna mig bekvĂ€m med nĂ€r jag började. Git och GitHub Ă€r otroligt kraftfulla (alltsĂ„, verkligen kraftfulla), och varje utvecklare jag kĂ€nner – inklusive de som verkar som trollkarlar nu – var tvungna att öva och snubbla runt lite innan allt föll pĂ„ plats. Det faktum att du har tagit dig igenom denna lektion betyder att du redan Ă€r pĂ„ vĂ€g att bemĂ€stra nĂ„gra av de viktigaste verktygen i en utvecklares verktygslĂ„da. HĂ€r Ă€r nĂ„gra helt fantastiska resurser för att hjĂ€lpa dig att öva och bli Ă€nnu mer fantastisk: - [Guide för att bidra till open source-programvara](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution) – Din vĂ€gkarta till att göra skillnad - [Git fusklapp](https://training.github.com/downloads/github-git-cheat-sheet/) – Ha denna till hands för snabb referens! Och kom ihĂ„g: övning ger framsteg, inte perfektion! Ju mer du anvĂ€nder Git och GitHub, desto mer naturligt blir det. GitHub har skapat nĂ„gra fantastiska interaktiva kurser som lĂ„ter dig öva i en sĂ€ker miljö: - [Introduktion till GitHub](https://github.com/skills/introduction-to-github) - [Kommunicera med Markdown](https://github.com/skills/communicate-using-markdown) - [GitHub Pages](https://github.com/skills/github-pages) - [Hantera sammanslagningskonflikter](https://github.com/skills/resolve-merge-conflicts) **KĂ€nner du dig Ă€ventyrlig? Kolla in dessa moderna verktyg:** - [GitHub CLI-dokumentation](https://cli.github.com/manual/) – För nĂ€r du vill kĂ€nna dig som en kommandoradstrollkarl - [GitHub Codespaces-dokumentation](https://docs.github.com/en/codespaces) – Koda i molnet! - [GitHub Actions-dokumentation](https://docs.github.com/en/actions) – Automatisera allt - [Git bĂ€sta praxis](https://www.atlassian.com/git/tutorials/comparing-workflows) – Höj din arbetsflödesnivĂ„ ## GitHub Copilot Agent-utmaning 🚀 AnvĂ€nd Agent-lĂ€get för att slutföra följande utmaning: **Beskrivning:** Skapa ett samarbetsprojekt för webbutveckling som demonstrerar hela GitHub-arbetsflödet du har lĂ€rt dig i denna lektion. Denna utmaning hjĂ€lper dig att öva pĂ„ att skapa repositories, samarbetsfunktioner och moderna Git-arbetsflöden i ett verkligt scenario. **Uppgift:** Skapa en ny offentlig GitHub-repository för ett enkelt projekt "Webbutvecklingsresurser". Repositoryn ska innehĂ„lla en vĂ€lstrukturerad README.md-fil som listar anvĂ€ndbara verktyg och resurser för webbutveckling, organiserade efter kategorier (HTML, CSS, JavaScript, etc.). StĂ€ll in repositoryn med korrekta community-standarder inklusive en licens, riktlinjer för att bidra och en uppförandekod. Skapa minst tvĂ„ funktionsgrenar: en för att lĂ€gga till CSS-resurser och en annan för JavaScript-resurser. Gör commits till varje gren med beskrivande commit-meddelanden, skapa sedan pull requests för att slĂ„ ihop Ă€ndringarna tillbaka till main. Aktivera GitHub-funktioner som Issues, Discussions och stĂ€ll in ett grundlĂ€ggande GitHub Actions-arbetsflöde för automatiska kontroller. ## Uppgift Din uppgift, om du vĂ€ljer att acceptera den: Slutför kursen [Introduktion till GitHub](https://github.com/skills/introduction-to-github) pĂ„ GitHub Skills. Denna interaktiva kurs lĂ„ter dig öva pĂ„ allt du har lĂ€rt dig i en sĂ€ker, guidad miljö. Dessutom fĂ„r du en cool badge nĂ€r du Ă€r klar! 🏅 **KĂ€nner du dig redo för fler utmaningar?** - StĂ€ll in SSH-autentisering för ditt GitHub-konto (inga fler lösenord!) - Prova att anvĂ€nda GitHub CLI för dina dagliga Git-operationer - Skapa en repository med ett GitHub Actions-arbetsflöde - Utforska GitHub Codespaces genom att öppna just denna repository i en molnbaserad editor Kom ihĂ„g: varje expert var en gĂ„ng nybörjare. Du klarar det! đŸ’Ș --- **Ansvarsfriskrivning**: Detta dokument har översatts med hjĂ€lp av AI-översĂ€ttningstjĂ€nsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strĂ€var efter noggrannhet, bör det noteras att automatiserade översĂ€ttningar kan innehĂ„lla fel eller felaktigheter. Det ursprungliga dokumentet pĂ„ dess ursprungliga sprĂ„k bör betraktas som den auktoritativa kĂ€llan. För kritisk information rekommenderas professionell mĂ€nsklig översĂ€ttning. Vi ansvarar inte för eventuella missförstĂ„nd eller feltolkningar som uppstĂ„r vid anvĂ€ndning av denna översĂ€ttning.