Opdater Github-fork med sidste nyt fra den oprindelige kilde (source)

Sådan kan du med Git indlæse sidste nye ændringer fra den oprindelige kilde, hvor fra du har lavet et fork.

Indledning

Det er ganske nemt at holde ens Github-fork opdateret med det nyeste fra det oprindelige repo. Det kræver kun et par få steps, som også kan findes på GitHub's hjemmeside. Først skal du tilføje en remote-path, og herefter skal du blot indhente seneste nyt.

For at kunne arbejde med git, er det nødvendigt at du har installeret dette. Git kan som udgangspunkt tilføjes med sudo apt install git på de fleste moderne destro's ala. Debian og Ubuntu. Kan du ikke finde git på denne måde, kan det være at du første skal indlæse sidste nyt. Dette gøres med sudo apt update.

Tilføj remote repository

Først kan du se hvilke du allerede har tilføjet med: git remote -v

Eksempel på output før ændringerne:

git remote -v
origin    https://github.com/exetico/exetico.github.io (fetch)
origin    https://github.com/exetico/exetico.github.io (push)

Når det er gjort, kan du tilføje det nye med:

git remote add upstream https://github.com/johno/pixyll

Hvis du igen tjekker med git remote -v vil du bemærke at du nu har fået tilføjet upstream.

Eksempel på output efter ændringerne:

git remote -v
origin    https://github.com/exetico/exetico.github.io (fetch)
origin    https://github.com/exetico/exetico.github.io (push)
upstream    https://github.com/johno/pixyll (fetch)
upstream    https://github.com/johno/pixyll (push)

Bemærk at overstående kun er muligt, hvis du har navigeret til mappen for dit Git-repo befinder sig.

Synkroniser med dit upstream fork

Nu er du klar til at indhente de sidste nye ændringer. Husk altid på at der kan være sket store ændringer fra du har forket, til at du vil indhente sidste nyt. Derfor skal du først sikre, at du ikke ender i problemer.

I dette tilfælde har jeg indhentet sidste nyt til temaet på denne blog, hvorfor jeg ikke frygter det store.

Kommandoerne indtastet en efter en. Bemærk at du desuden skal huske en commit-note, hvilket selv vil dukke op på din skærm, når du når dertil:

git fetch upstream
git checkout master
git merge upstream/master
git push

Nedenfor kan du se de enkelte kommandoer, da de blev afviklet på min maskine:

> ~ git fetch upstream
remote: Counting objects: 9, done.
remote: Total 9 (delta 5), reused 5 (delta 5), pack-reused 4
Unpacking objects: 100% (9/9), done.
From https://github.com/johno/pixyll
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      less-distracting-link-styling -> upstream/less-distracting-link-styling
 * [new branch]      master     -> upstream/master
 * [new branch]      remove-unnecessary-post-wrapper-for-page-layout -> upstream/remove-unnecessary-post-wrapper-for-page-layout

 > ~ git checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.

 > ~ git merge upstream/master
Merge made by the 'recursive' strategy.
 LICENSE.txt        | 5 ++++-
 _sass/_tables.scss | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

 > ~ git push
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 2.88 KiB | 2.88 MiB/s, done.
Total 12 (delta 7), reused 0 (delta 0)
remote: Resolving deltas: 100% (7/7), completed with 6 local objects.
To https://github.com/exetico/exetico.github.io

Opleves du problemer med konflikter, kan du ofte løse det ved hjælp af disse kommandoer, kørt en efter en - men pas nu på. Du skulle nødigt komme til at overskrive noget vigtigt, eller tilsvarende.

git add .
git commit -m "Conflicts fix"
git checkout master
git push

God fornøjelse.

Last updated