Forkar
Det här lär du dig
Section titled “Det här lär du dig”- Vad en fork är, och när den behövs.
- Att arbeta med två fjärr-repositories:
origin(din fork) ochupstream(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.
Varför behövs det här?
Section titled “Varför behövs det här?”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.
Så hänger det ihop
Section titled “Så hänger det ihop”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.
Exempel
Section titled “Exempel”Efter git clone av din fork finns bara origin. Lägg till originalet som upstream:
$ git remote add upstream https://github.com/agaren/resplan.git$ git remote -vorigin 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:
$ git switch main$ git fetch upstreamFrom https://github.com/agaren/resplan * [new branch] main -> upstream/main$ git merge upstream/mainUpdating 7e11a5c..9a8dcd0Fast-forward resplan.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)$ git pushgit push skickar den uppdaterade main till din fork. Nu ser grenarna ut så här:
$ 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 resplanenupstream/main, origin/main och din main pekar på samma commit. Grenen dag-3-gavle väntar i en pull request.
Övning
Section titled “Övning”Ö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.
Vanliga problem
Section titled “Vanliga problem”Testa dig själv
Section titled “Testa dig själv”Sammanfattning
Section titled “Sammanfattning”- En fork är en kopia av någon annans repository på ditt eget konto.
originär din fork, ochupstreamär originalet.- Skicka grenen till din fork och öppna en pull request till originalet.
- Uppdatera forken med
git fetch upstream,git merge upstream/mainochgit push, eller med Sync fork.