Hoppa till huvudinnehåll

Vad är Repository, Branch och Commit?

Repository

Ett repository är den huvudsakliga komponenten som spårar förändringar i ditt projekt. Den komponent hittar man under ./git i roten av ditt projekt. Genom att titta på den här katalogen kan Git manipulera koden som du har valt att spåra. Tar du bort ./git från ditt projekt förlorar du all spårning av ditt projekt i den instansen (om du har skickat förändringar till en server, finns de förändringarna som du skickat sparade där). 

Så ett repo kan vara både lokalt (local) eller online på en server (remote) som https://git.ssis.nu/ och https://github.com/

 

Att spåra förändringar

När man skapar ett nytt Git repository måste du manuellt lägga till de filer som du vill spåra. Det kan vara rimligt att inte spåra alla filer i ditt projekt. Om du använder en IDE till exempel finns det vissa filer som automatiskt sparas, som inte är relevanta till din kod. Dessa filer kanske inte är nödvändiga i ditt repository.

Det vanligaste felet (som även professionella programmerare gör ibland) är att spåra förändringar av API-nycklar eller lösenord till databaser. Dessa får aldrig spåras, punkt. 

För att förhindra att av misstag lägga upp filer som innehåller känsliga uppgifter kan du använda något som kallas .gitignore. Det är en fil som berättar för Git att du inte vill spåra vissa filer eller kataloger.  Du skriver helt enkelt namnet (och sökväg om det behövs) på filen på var sin rad.

Exempelvis: 

.gitignore

/node_modules
/public/hot
/public/storage
/public/js
/public/css
/public/mix-manifest.json
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
 

 

 

För att faktiskt spåra en förändring behöver du använda ett kommando (om du använder ett grafiskt gränssnitt är det här inte lika relevant) som kallas git add (alla kommandon i git måste prefixas såhär: git kommando ). 

du@dator:~/myFirstRepo$ git add minfil

Det innebär att git kommer börja hålla koll på den filen (om det är första gången). add lägger även till en fil till en s.k. commit och då är den staged for commit. 

Commit

En commit är det huvudsakliga verktyget som du som programmerare segmenterar dina förändringar i mindre delar med. Det kan verka tradigt och lite poänglöst men det kommer ge utdelning i längden för dig och ditt framtida team (som ibland, är dig själv fyra månader i framtiden). 

En commit ska göras varje gång du gör en förändring. Inte varje sekund, eller varje minut (det är oftast inte rimligt) men när du som programmerare väsentligt förändrar hur din kod fungerar.  Det innebär att när du är klar med något som fungerar, bör du commita det. Den förändringen vill du spara, för då kan du återgå och titta på förändringarna över tid om något går fel eller om det inte fungerar lika bra som förut.

Om du förändrat många olika saker bör du separera förändringarna till sina domäner. Gör du en förändring i hur din användare fungerar och sen sen förändring i din databas, bör dessa två förändringar vara i två olika commits. Det är inte rekommenderat att förändra många saker och lägga dem i samma commit.

 

 

Branch

Git använder sig av något som kallas branches (eller grenar) för att spåra förändringar. Huvudbranchen brukar kallas för main (eller master på aningen äldre system, läs mer här om varför). Det är det huvudsakliga projektet. Alla andra branches deriverar sin sanning från main vilket innebär att när du skapar en ny branch gör du det från main. 

En branch är tidslinje med commits. En branch kan som sagt ses som en gren på det stora trädet då man kan ha flera branches på ett och samma träd (repo).