Hoppa till innehåll

Forkar

  • Vad en fork är, och när den behövs.
  • Att arbeta med två fjärr-repositories: origin (din fork) och upstream (originalet).
  • Att öppna en pull requestPull request (PR)Ett förslag om att föra in ändringarna från en branch i en annan, så att andra kan granska och diskutera dem först.Läs mer om pull request från din fork till originalet.
  • Att hålla din fork uppdaterad.

I ett öppet projekt på GitHub får vem som helst läsa koden, men bara ägarna får skicka till repositorytRepository (repo)En projektmapp som Git håller ordning på: alla filer i projektet plus hela historiken av sparade versioner.Läs mer om repositoryt. Vill du ändå bidra med en rättelse kan du inte skicka en gren dit. Då gör du en fork.

En fork är en kopia av någon annans repository, på ditt eget GitHub-konto. Där får du skicka vad du vill. Från din fork kan du sedan öppna en pull request till originalet. Ägarna granskar den och för in den, precis som i lektion 3–5.

Du har nu två fjärr-repositories:

Namn Pekar på Används till
origin din fork, github.com/ditt-namn/resplan git push av dina grenar
upstream originalet, github.com/agaren/resplan git fetch upstream, för att hämta ägarnas ändringar

upstream är bara ett namn, som origin, men nästan alla använder det för originalet.

Din fork uppdateras inte av sig själv när originalet ändras. Du hämtar ändringarna från upstream, för in dem i din main och skickar till din fork.

Efter git clone av din fork finns bara origin. Lägg till originalet som upstream:

Terminal
$ git remote add upstream https://github.com/agaren/resplan.git
$ git remote -v
origin https://github.com/ditt-namn/resplan.git (fetch)
origin https://github.com/ditt-namn/resplan.git (push)
upstream https://github.com/agaren/resplan.git (fetch)
upstream https://github.com/agaren/resplan.git (push)

Hämta ägarnas ändringar och för in dem i din main:

Terminal
$ git switch main
$ git fetch upstream
From https://github.com/agaren/resplan
* [new branch] main -> upstream/main
$ git merge upstream/main
Updating 7e11a5c..9a8dcd0
Fast-forward
resplan.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push

git push skickar den uppdaterade main till din fork. Nu ser grenarna ut så här:

Terminal
$ git log --oneline --all --graph
* 9a8dcd0 (HEAD -> main, upstream/main, origin/main, origin/HEAD) Lägg till årtal i rubriken
| * 27de834 (origin/dag-3-gavle, dag-3-gavle) Lägg till dag 3: Gävle
|/
* 7e11a5c Första versionen av resplanen

upstream/main, origin/main och din main pekar på samma commit. Grenen dag-3-gavle väntar i en pull request.

Övningen behöver ett repository som någon annan äger. Arbetar ni två: forka varandras resplan-samarbete. Arbetar du ensam: läs stegen, och prova dem när du vill bidra till ett riktigt projekt. Gör inga pull requests till andras projekt bara för att öva.

1. Du arbetar i en klon av din fork. Vad pekar origin och upstream på?
Visa rätt svar
  • origin på din fork, upstream på originalet
2. Hur uppdaterar du din fork med det nya i originalet?
Visa rätt svar
  • git fetch upstream, git merge upstream/main och git push: Knappen Sync fork på GitHub gör samma sak på webbplatsen.

  • En fork är en kopia av någon annans repository på ditt eget konto.
  • origin är din fork, och upstream är originalet.
  • Skicka grenen till din fork och öppna en pull request till originalet.
  • Uppdatera forken med git fetch upstream, git merge upstream/main och git push, eller med Sync fork.