Version Control

& Terminalen

Terminalen

Kommandotolken

Oftast arbetar vi med ett GUI

Graphical User Interface

Bakom detta är oftast ett CLI

Command Line Interface

För varje del i det grafiska finns en kodrad som körs

Istället för att navigera och arbeta grafiskt (peka och klicka)

Skriv kommandon, i princip koda vad du vill göra

När man väl har lärt sig så är det 100000000x effektivare

Mer kontroll

Mer tillgång till operativsystemet

Ultimata makten

All utvecklare använder någon form av Versionshantering

Vanligast är verktygetgit

  • index.php
  • index_old.php
  • index_new_old.php
  • index_new2.php
  • index_new2_final.php
  • index_new2_final2.php

😤

Istället för att skapa nya filer

Skapa "sparningar" av hur era filer ser ut vid ett visst tillfälle

I git kallas en "sparning" för en commit

  • Working Directory
    • Mappen som du jobbar i lokalt (ditt projekt)
  • Staging Area
    • Filer som ska läggas till i ditt repository
  • Repository
    • Alla sparade ändringar (commits) av ditt projekt

För att hålla reda på sina sparningar skapar man branches

Avgreningar av ens kod där man ska göra ändringar

Om du inte har skapat en kod så står du i branchenmaster

Typiskt arbetsflöde

  • Gör din mapp till ett repository: git init / git clone
  • Lägg till alla filer till git git add .
  • Skapa en branch: git checkout -b my-new-branch
  • Skapa en sparning: git commit -m "My first save"

För att byta mellan branches

git checkout name-of-branch

För att byta mellan commits

git checkout name-of-commit

Du måste Alltid göra en commit för att något ska sparas i git

GitHub

repository

Git är inte bunden till GitHub på något sätt

Det finns flera tjänster som gör samma sak:

GitLab, BitBucket, Microsoft Team Services

Sidor dedikerade till att hantera Källkod

Vi använder versionskontroll lokalt

Sen pushar vi upp koden så att andra kan ladda ner den: pull

https://www.codecademy.com/learn/learn-git https://try.github.io/ https://learngitbranching.js.org/