Git commandline

Installera Git cmd

För cmd-versionen sÄ laddar du antingen ned Git portable, eller kör WSL. Detta Àr alltsÄ inte en GitHub klient pÄ samma sÀtt som GitHubs desktop-klient.

Ladda ned 64-bit Git portable for Windows, https://git-scm.com/download/win.

Ett portable program Àr ett program utan installationsfiler. Du laddar ned det, packar(oftast) upp det och sedan kan du köra programmet.

PortableGit Àr en körbar (executable, exe) fil som lÄter dig packa upp de filer du behöver. Kör programmet och vÀlj att spara filerna under c:\tools\portablegit.

Windows behöver kunna hitta program för att kunna köra dem frÄn cmd (till exempel Powershell). För det anvÀnds systemets PATH, en global sökvÀg som gÄr att redigera. För att lÀgga till ett program i PATH:

  1. Starta Utforskaren (Explorer) win+e.

  2. Högerklicka pÄ Den hÀr datorn, vÀlj Egenskaper.

  3. Öppna System och sĂ€kerhet, System i Kontrollpanelen.

  4. VÀlj Avancerade systeminstÀllningar .

  5. Klicka pÄ Miljövariabler .

  6. VÀlj AnvÀndarvariabler för din anvÀndare.

  7. Dubbelklicka pÄ PATH.

  8. VÀlj Ny och skriv in sökvÀgen c:\tools\PortableGit\bin .

    1. Byt sökvÀg om du installerar andra program.

  9. Starta Powershell .

  10. Kör git, du kommer att se programmets hjÀlp.

  11. Klart.

Efter Àndringar i PATH mÄste cmd-program startas om för att Àndringarna ska gÀlla.

Kommandon

Det Àr bra att ha kunskapr kring hur Git fungerar i cmd. Det hÀr avsnittet repeterar hur du löser en konflikt med Git i cmd.

Skapa en code mapp om du inte har gjort det

AnvÀnd sedan en terminal (Powershell, cmd, WSL) för att skapa en mapp för ditt repo.

AnvÀnd samma namn pÄ mappen för repot som repots namn

c:
cd \
md code # md Àr make directory, sÄ anvÀnd bara om du inte skapat med Utforskaren
cd code
md wu1-test
cd wu1-test

För att lista innehÄllet (i en mapp) eller se var i en filstruktur du befinner dig kan du i cmd skriva dir (Windows) eller ls (Linux).

Skapa sedan ett nytt repo pÄ GitHub, gör det genom att repetera de hÀr stegen, ge repot namnet wu1-test.

Klicka Create repository för att skapa repot. DÄ kommer Quick setup att visas.

Om du markerat "Intialize this repository with a README" sÄ kommer inte Quick setup instruktionerna visas.

Quick setup Àr en lista över de kommandon som behöver köras för att slutföra skapandet av repot. Det skapar Àven en README-fil. Om du kopierar Quick setup-koden, var noga med att köra den frÄn rÀtt mapp!

cd c:\code\wu1-test

echo "# wu1-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/jensnti/wu1-test.git
git push -u origin master
  1. echo skriver ut text och med >> sÄ pipar (skickas informationen, engelska pipe) det texten till en fil. Det skapar filen README.md.

  2. git init, initialiserar mappen som ett git repo.

  3. git add filnamn lÀgger till en eller flera filer till repot.

  4. git commit -m "meddelande", skapar en commit med ett namn.

  5. git remote add origin github url, detta kopplar samman git repot med remote origin pÄ GitHub.

  6. git push, skickar repots commits till GitHub.

Github training, Init, https://youtu.be/WxMFZncm12s

Om du kört kommandona ovan sÄ har du initierat repot och skapat readme filen. Hade du för brÄttom och klistrade in det i c:, leta upp mappen .git i utforskaren och ta bort den. Börja sedan om.

NÀsta steg Àr att redigera en fil och ladda upp det pÄ GitHub.

Starta vscode frÄn cmd genom att skriva.

code .

Öppna filen README.md och redigera den. AnvĂ€nd sedan terminalen igen för att skapa en commit och skicka den till remote.

git add README.md
git commit -m "Uppdaterade README"
git push

Var noga med att lÀsa vad det stÄr i terminalen, försök lösa eventuella fel

Första gÄngen du commitar frÄn cmd sÄ behöver du ange dina anvÀndaruppgifter.

git config user.name "Your Git Username"
git config user.email "your@address.com"

Upprepa sedan kommandona för att skapa en commit och skicka den till remote.

c:\code\wu1-test>git push
Counting objects: 39, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (28/28), done.
Writing objects: 100% (39/39), 5.44 KiB | 928.00 KiB/s, done.
Total 39 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/jensnti/wu1-test.git
 * [new branch]      master -> master

Problem och att lösa dem frÄn cmd

Konflikter kan ske oavsett vilken typ av Git-klient du anvÀnder. Precis som i tidigare avsnitt ska du nu fÄ lösa en konflikt, den hÀr gÄngen frÄn cmd.

Synkronisera först ditt lokala repo mot remote.

git fetch
git pull

Öppna repot pĂ„ GitHub.com. Redigera README.md och commita dina Ă€ndringar..

Öppna vscode och redigera README-filen. Sparan Ă€ndringarna och skapa en ny commit.

git add README.md
git commit -m"uppdatering av readme"
git push

Att pusha filerna resulterar i en konflikt (merge issue). Felmeddelandet ser ut ungefÀr sÄhÀr.

To https://github.com/jensnti/wu1-test.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/jensnti/wu1-test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Push misslyckades. Var noga med att lÀsa hela meddelandet, dÄ Git ger tips om hur felet ska lösas.

Kör git pull för att initiera arbetet med att lösa konflikten.

git pull

Eftersom filerna i det lokala repot skiljer sig frÄn filerna pÄ remote kan inte Git automatisk slÄ ihop dem. Du behöver ange vad, eller vilken version som ska sparas.

Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

AnvÀnd sedan vscode för att öppna de filer som har konflikter. Vscode hjÀlper dig att redigera dem och vÀlja vad som ska sparas.

Spara sedan Àndringarna; skapa en ny commit och pusha.

git add README.md
git commit -m"fixade konflikter"
git push

Branches

Branches (svenska, grenar) Àr ett sÀtt att arbeta med Git. Namnet kommer frÄn den trÀdstruktur som Git har. Den hÀr guiden visar hur du arbetar med branches i Git cmd.

Branching is the way to work on different versions of a repository at one time.

Som standard har alla repos en branch som heter main. Hittils har allt arbete du gjort skett i main. Det Àr nÄgot som generellt bör undvikas av olika skÀl. Att arbeta i main kan leda till sÀkerhetsproblem, dataförlust och annat.

Github training, Branch, https://youtu.be/H5GJfcp3p4Q.

Skapa en ny branch

Kontrollera att du Àr i rÀtt mapp. FortsÀtt frÄn det tidigare test-repot.

cd \code
cd wu1-test
git branch feature
git checkout feature

Kommandot git branch skapar en ny branch. Git branch följs av namnet pÄ den branch som ska skapas. Git checkout följt av namnet pÄ den branch som ska anvÀndas byter branch. Namnet pÄ branchen i det hÀr fallet Àr feature. Den branch som Àr vald blir active (svenska, aktiv).

GitHub training, Checkout, https://youtu.be/HwrPhOp6-aM.

git branch
# Vilket ger oss en lista av de branches som finns och * för den aktiva
* feature
  main

Kontrollera alltid att du arbetar i rÀtt branch.

Med branchen feature aktiv. Skapa en ny fil med namnet log.md.

NÀr arbetet med en branch Àr fÀrdigt sÄ behöver det commitas och sedan slÄs ihop (merge) med master. Det kan göras pÄ tvÄ sÀtt. Allt kan antingen slÄs ihop lokalt för att sedan pusha det till master. Eller sÄ utförs det pÄ GitHub med en pull request. Det första alternativet fungerar nÀr du arbetar sjÀlv pÄ ett projekt, i alla andra fall Àr det senare att föredra.

Instruktionerna som följer visar hur du slÄr ihop dina branches lokalt. För att skapa en pull request, lÀs Githubs guide hÀr.

git branch # kontrollera aktiv branch
git add . # . betyder, lÀgg till alla filer i mappen
git commit -m "ny fil i ny branch"

Kontrollera vilka filer som finns i mappen med dir eller ls. Byt sedan branch och kontrollera igen.

För att slÄ ihop branches vÀljer du först den branch som ska ta emot koden frÄn en branch. FrÄn den aktiva branchen körs kommandot git merge, med namnet pÄ den branch som ska slÄs ihop till den aktiva.

git checkout main
git merge feature

Om konflikter uppstÄr sÄ lÀs felmeddelande och försöka att lösa dem som tidigare.

GitHub training, Merge, https://youtu.be/yyLiplDQtf0.

Efter att de slagits ihop sÄ tar du bort den branch som inte lÀngre anvÀnds.

git branch -d feature

Att arbeta med branches Àr GitHubs workflow, lÀs mer om det i GitHubs material för att fÄ en bÀttre förstÄelse för hur det fungerar.

Last updated