# Commits och Repos

Allt du behöver veta om Commits och Repos!

# Starta ett remote repository

#### <span style="font-weight: 400;">Skapa ditt första remote repo på GitLab ([https://git.ssis.nu/](https://git.ssis.nu/))</span>

1. <span style="font-weight: 400;">Klicka på “Projects” och sedan på “Your projects”.</span>
2. <span style="font-weight: 400;">Där klickar du sedan på skapa nytt projekt. (Alltså ett blankt projekt)</span>
3. <span style="font-weight: 400;">Sätt sedan in ett namn på ditt projekt och välj “Internal” på “Visibility Level”.</span>

<span style="font-weight: 400;">Nu har du skapat ditt första “remote repository” och den kan nu kommas åt av personer som är inloggade på skolans GitLab.</span>

<p class="callout info"><span style="font-weight: 400;">Processen för att skapa ett remote repository är ungefär samma på alla Git hemsidor</span></p>

# Starta projekt / lokalt repo

#### Skapa projektet genom att starta ett nytt med Git.

1. Gå in i din projekt mapp och öppna ditt val av konsol i den mappen. (Git Bash / Powershell / Terminal)
2. Skriv `git init` för att starta ditt projekt.

När du nu startat ditt projekt så kan du börja arbeta.

<p class="callout info">Du kan även göra detta på ett projekt som du redan har börjat med!</p>

# Lägg till ett remote repo till ditt projekt

### För att enkelt kunna dela koden med dina kamrater eller kollegor så behöver du använda ett [remote repo](https://info.ssis.nu/books/git/page/starta-ett-remote-repo "Starta ett remote repo").

1. Gå in i din projekt mapp och öppna ditt val av konsol i den mappen. (Git bash / Powershell / Terminal)
2. Skriv “git remote add origin” och stoppa in SSH/HTTPS länken till ditt remote repo och klicka på enter.
3. Skriv "git remote" och så borde du se "origin" komma upp.

<p class="callout info">"origin" är det standardnamnet som används på huvud remoten för projektet. men kan självklart bytas ut till vad du själv vill!</p>

<p class="callout warning">Det är rekommenderat att alltid använda SSH för Git då det oftast är smidigare än användarnamn och lösenord!  
Kolla hur du lägger in en SSH nyckel i följande KDBI: [SSH Nyckel och dess användning i Git](https://info.ssis.nu/books/git/page/ssh-nyckel-och-dess-anvandning-i-git "SSH Nyckel och dess användning i Git")</p>

<p class="callout danger">HTTPS länken för projekt på [https://git.ssis.nu/](https://git.ssis.nu/) kräver ett Admin lösenord och det rekomenderas att använda SSH länken.  
Detta kräver då att du har registrerat en SSH nyckel på hemsidan. Se följande KDBI: [SSH Nyckel och dess användning i Git](https://info.ssis.nu/books/git/page/ssh-nyckel-och-dess-anvandning-i-git "SSH Nyckel och dess användning i Git")</p>

# Pusha en commit till ett remote repo

### Pusha dina [commits](https://info.ssis.nu/books/git/page/vad-ar-commit-repo-och-branch "Vad är Commit, Repo och Branch?") genom att pusha dem till ett remote repo.

För att kunna pusha till ett remote repo så måste du ha lagt till den i projektet. Se följande KDBI: [Lägg till ett remote repo till ditt projekt](https://info.ssis.nu/books/git/page/lagg-till-ett-remote-repo-till-ditt-projekt "Lägg till ett remote repo till ditt projekt")

1. Gå in i din projekt mapp och öppna ditt val av konsol i den mappen. (Git bash / Powershell / Terminal)
2. Skriv "git push RName RBName" där RName är namnet på din remote och RBName är namnet på din remote branch.

<p class="callout info">Om det är första gången du ska ladda upp något till ditt remote repo så måste du ha med argumentet "-u"  
Alltså ser det då ut som följande "git push -u RName RBName".</p>

<p class="callout info">Om du redan definierat vilken remote och vilken remote branch du vill pusha till så räcker det med att skriva "git push"</p>

# Hämta ändringar från ett remote repo

### Hämta [commits](https://info.ssis.nu/books/git/page/vad-ar-commit-repo-och-branch "Vad är Commit, Repo och Branch?") från ett remote repo.

För att kunna hämta commits från ett remote repo så måste du ha lagt till den i projektet. Se följande KDBI: [Lägg till ett remote repo till ditt projekt](https://info.ssis.nu/books/git/page/lagg-till-ett-remote-repo-till-ditt-projekt "Lägg till ett remote repo till ditt projekt")

1. Gå in i din projekt mapp och öppna ditt val av konsol i den mappen. (Git bash / Powershell / Terminal)
2. Skriv "git pull" och då kommer den att tanka ner alla commits som är framför din nuvarande.

<p class="callout info">Om du vill hämta men inte hoppa framåt så kan du göra "git fetch" och ladda ner commits utan att hoppa frammåt.</p>

# Skapa en commit

### Skapa en commit med dina ändringar.

1. Gå in i din projekt mapp och öppna ditt val av konsol i den mappen. (Git bash / Powershell / Terminal)
2. Skriv `git status`. Då borde du få fram något som liknar bilden nedan:  
      
    [![image-1620072704662.png](https://info.ssis.nu/uploads/images/gallery/2021-05/scaled-1680-/e5ImqX9ycKRGrxTq-image-1620072704662.png)](https://info.ssis.nu/uploads/images/gallery/2021-05/e5ImqX9ycKRGrxTq-image-1620072704662.png)
3. Skriv `git add FILEName` där FILEName är den relativa vägen till filen.  
    Detta kan du göra för varje fil eller använda `git add .` för att lägga till alla filer som är antingen untracked eller modified.
4. Skriv `git commit -m "TITLE"` där TITEL är titeln på din commit.
5. Skriv `git log` för att se dina commits. Följande bild är ett exempel på hur det kan se ut:  
      
    [![image-1620073112833.png](https://info.ssis.nu/uploads/images/gallery/2021-05/scaled-1680-/2MxAei6Hep0LYl8I-image-1620073112833.png)](https://info.ssis.nu/uploads/images/gallery/2021-05/2MxAei6Hep0LYl8I-image-1620073112833.png)

<p class="callout info">Du kan stoppa in flera `-m` i din `git commit` för att lägga till flera rader.  
Exempelvis: `git commit -m "TITLE" -m "MESSAGE"`</p>

<p class="callout info">`git commit` tillåter ASCII så som `\n` `\r` och flera andra.</p>