26. Synka en fork (GitHub)

Det finns två sätt att synka en fork så att den uppdateras med de ändringar som gjorts i den ursprungliga repon (AKA “uppströmsrepon”) efter forkningen.

Synka via terminalen

Det här ser kanske lite invecklat ut men går förvånansvärt smidigt. Har än så länge inte stött på några problem med den här metoden. Instruktionerna är hämtade från GitHubs egna dokumentation, men här har jag sammanfogat stegen för att konfigurera en remote-repo och mergea den med forken i en och samma steglista.

1. Öppna Git Bash på forkmappen.

Börja med att konfigurera en remote-repo som pekar mot den ursprungliga repon enligt följande:

2. Lista de nuvarande konfigurerade remote-reporna för forken:

$ git remote -v
> origin https://github.com/datatjej/comp-syntax-2020.git (fetch)
> origin https://github.com/datatjej/comp-syntax-2020.git (push)

3. Lägg till uppströmsrepon som ytterligare remote-repo:

$ git remote add upstream https://github.com/ORIGINALÄGARE/ORIGINALREPO.git

(I mitt exempelfall är uppströmsrepon: https://github.com/GrammaticalFramework/comp-syntax-2020.git)

4. Säkerställ att uppströmsrepon verkligen lagts till:

$ git remote -v
> origin https://github.com/datatjej/comp-syntax-2020.git (fetch)
> origin https://github.com/datatjej/comp-syntax-2020.git (push)
> upstream https://github.com/GrammaticalFramework/comp-syntax-2020.git (fetch)
> upstream https://github.com/GrammaticalFramework/comp-syntax-2020.git (push)

5. Hämta uppströmsrepons grenar och tillhörande commits. Commits som gjorts i master-branchen förvaras i en lokal branch med namnet upstream/master.

$ git fetch upstream
> remote: Enumerating objects: 142, done.
> remote: Counting objects: 100% (142/142), done.
> remote: Compressing objects: 100% (112/112), done.
> remote: Total 1808 (delta 72), reused 82 (delta 30), pack-reused 1666
> Receiving objects: 100% (1808/1808), 69.63 MiB | 185.00 KiB/s, done.
> Resolving deltas: 100% (1025/1025), completed with 2 local objects.
> From https://github.com/GrammaticalFramework/comp-syntax-2020
> * [new branch] master -> upstream/master

6. Checka ut din forks lokala masterbranch:

$ git checkout master

7. Mergea ändringarna i upstream/master med din lokala masterbranch. Detta påverkar inte dina lokala ändringar på forken.

$ git merge upstream/master

8. Kom ihåg att pusha de uppdaterade ändringarna på din lokala fork till din remote-fork på GitHub också.

Klaaaart! :D

Synka via GitHub

Har aldrig följt den här metoden tidigare, så jag testar att göra det medan jag skriver. Instruktioner hittade jag här. I kort går det ut på att göra en slags omvänd pull request.

1. Inspektera dina remote-fork-vy. Där kan du se hur många commits den ligger bakom uppströmsrepon:

Remote-fork-vy på GitHub
I det här fallet ligger min fork 308 commits bakom GrammaticalFrameworks repo.

2. Klicka på antingen “Pull request” eller “Compare”:

Pull request- och Compare-knapparna

…så att du hamnar i den här vyn:

Comparing changes-vyn

3. Klicka sedan på “compare across forks”:

Compare across forks-knappen

4. Välj den egna forken som base-fork och uppströmsrepon som head-fork:

Välj base- och head-fork.

5. Klicka på “Create pull request”:

Create pull request-knappen.

6. Namnge pull request-commiten med något informativt och klicka på “Create pull request” igen:

Namnge pull request-commiten.

7. Mergea pull requesten genom att scrolla ner i pull requesten och klicka på “Merge pull request”:

Merge pull request-knappen.

8. Klicka på “Confirm merge”:

Merge pull request-knappen.

9. Nu är din fork uppdaterad med det senaste! Kom ihåg att hämta ner ändringarna lokalt också med git pull. :)

Written on September 2, 2020