# Git/markdown skola med William ***- Git i terminalen, windows/mac/linux.*** ***- Vi ska även kolla lite på markdown*** --- # Git basics - Version Control - Spårbarhet - Inget mer oroande över "vad fan var det jag ändrade sist?" --- # Basic kommandon för att enkelt starta igång projekt --- ```bash= git config --global user.name "username" ``` Sätter ert användarnamn globalt, alltså för alla repos etc. ```bash= git config --global user.email "email@example.com" ``` Sätt er commit mail adress. --- # Ansluta till github --- - Mac/linux ```bash= ls -al ~/.ssh ``` Kolla om det finns någon av dessa: id_rsa.pub, id_ecdsa.pub, id_ed25519.pub --- I windows ligger dessa under: ``` bash= C:\Users\{dittanvändarnamn}\.ssh\id_rsa.pub ``` Har ni ingen SSH key kan ni läsa på [Github Docs](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) hur man gör. Ni måste även koppla er nyckel till ert github konto. På github: Settings -> SSH and GPG keys -> New SSH key. --- ![](https://i.imgur.com/nj6BGOZ.png) --- I din repo hittar du din ssh anslutning när du klickar på code knappen. ```bash= #SSH variant git remote add origin git@github.com:Krut-Oskar/git_test.git #HTTPS variant git remote add origin https://github.com/Krut-Oskar/git_test.git ``` Nu är origin namnet på din remote repo. Du kan nu pusha saker från din lokala repo till din remote(github) direkt från terminalen. --- # VAD FAN ÄR ETT LOCAL REPO DÅ? --- ## Jo det ska jag berätta. SKOJA vet typ inte men kan förklara lite hur det funkar. --- - Först måste ni ha en liten mapp för ert projekt. ```bash= #Basically samma för alla OS. cd /home/user/dev mkdir mittnyaprojekt cd mittnyaprojekt ``` --- # Starta git --- - Initiera git i den här mappen ```bash= git init ``` --- - skriv `git status` - Nu borde det se ut så här ish. ![asd](https://i.imgur.com/iKgi5xH.png) --- - Nu kan ni slänga in lite filer och skriva `git status` igen och det borde se ut så här. ![asd](https://i.imgur.com/759SlXB.png) --- - Dett betyder att filerna inte är spåras av git. Men git ser att de finns i mappen. - För att börja spåra dessa filer med git måste de läggas till. Det gör vi med `git add {filnamn}`. --- - Här har jag endast börjat spåra README.md men inte python filen. Alla ändringar jag gör till den filen kommer nu sparas av git. ![asd](https://i.imgur.com/L6TXiEa.png) --- - För att commita den här ändringen så att git sparar ner den använder jag `git commit -m "mitt meddelande"` ![asd](https://i.imgur.com/FyFUTmS.png) --- ## Nu har jag en local repository - Att "committa" är som att trycka "Spara som.." i Word. - Comitten sparar de ändringar som ni gjort till alla filer som är addade och spåras av git. - Om ni gör det ofta blir det lätt att gå tillbaka och se vad ni gjort om ni får errors. - Filen som är comittad försvinner även från `git status` om den inte ändras, så fort den ändras kommer det synas --- ![asd](https://i.imgur.com/zrfquvq.png) - Nu är ni redo för att pusha till github! --- ## Pusha till github - Nu kan ni lägga till er remote repository som jag visade i början. - För att skicka det som är sparat och ändrings historiken till github använder vi `git push` kommandot. --- ```bash= git push origin main. #origin är namnet på remote och main är namnet på den branch vi pushar till. ``` - Nu borde dina filer ha skickats till ditt github repo. ### Så enkelt var det --- # Branches --- - Fungerar som nya kopior av koden där ni kan utveckla nya features/funktioner utan att förstöra koden som ligger i main. - När ni har testat så att allt fungerar och inget gått sönder kan ni merga/sammanfoga så att den nya funktioner hamnar i main. --- ```mermaid graph TD; A[main]-->B[G delen]; A-->C[VG delen]; B-->E[hej jag heter william] E-->C ``` --- ![asd](https://i.imgur.com/8PcrAsU.jpg) --- ## Git pull/clone/fetch --- ### Clone `git clone {url}` Kopierar en repository till den directory du är på din dator. Används för att ladda ner kod från github t.ex. --- ### Fetch `git fetch {url}` Laddar ner ny data från specifierad repository men ändrar inget i din lokala repository. --- ### Pull `git pull {url}` Laddar ner ny data från specifierad repository ***och mergar den med ditt nuvarande lokala repository.*** Så var försiktiga med detta bör endast användas med en "tom" lokal repository. ***Alla sparade ändringar som endast finns lokalt kommer att skrivas över.*** --- ## Extra --- ### Git log `git log` Används för att se commit historik. --- ### Git ammend `git commit --ammend` Används för att t.ex. lägga till en till fil i en commit om man glömt en. Den ersätter din tidigare commit så du kommer bara se en commit i historiken. --- ### Git restore ```bash= git restore {filename} git restore --staged {filename} ``` Används för att återställa en fil till hur den såg ut i den senaste commiten (eller clonen). Om du har råkat adda en fil som du inte ville adda kan du med flaggan --staged ta bort den så att git slutar spåra den. --- ### Läs mer [Gits egen hemsida!](https://git-scm.com/doc) [Github docs.](https://docs.github.com/en) --- # QUIZ --- # 1. Vilket kommando använder jag för att skicka mina filer till en remote repository? --- ```bash= git push origin main ``` --- # 2. Vilket kommando använder jag för att börja spåra filer? --- ```bash= git add {filename} ``` --- # 3. Varför är det viktigt att committa och skriva commit-meddelanden? --- >För att kunna se förändringar över tid och veta när jag gjorde vad och kunna gå tillbaka till en tidigare sparad version om något pajar. --- # 4. Varför göra allt detta via terminalen när jag kan använda GitHub-Desktop? --- >För att du ser ut som en hacker såklart. --- # 5. Vad är det för skillnad på `git pull` och `git fetch`? --- >Pull sammanfogar med din lokala repository och skriver över dina lokala commits. Fetch uppdaterar bara filerna i ditt lokala repository men skriver inte över ändringar du gjort.
{"metaMigratedAt":"2023-06-15T22:44:15.064Z","metaMigratedFrom":"Content","title":"Git/markdown skola med William","breaks":true,"contributors":"[{\"id\":\"d438c954-2614-4748-a960-b249ee09dfcd\",\"add\":6195,\"del\":163}]"}
    223 views