För in en pull request
Det här lär du dig
Section titled “Det här lär du dig”- Att föra in 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 i
mainmed knappen Merge pull request. - Skillnaden mellan de tre sätten: merge-commit, squash och rebase.
- Att städa efter dig: ta bort grenen på GitHub och hos dig, och hämta det nya med
git pull.
Varför behövs det här?
Section titled “Varför behövs det här?”När pull requesten är granskad och godkänd ska ändringen in i huvudversionen. På GitHub görs det med en knapp. Men din dator vet inget om det förrän du hämtar, och grenen finns kvar både på GitHub och hos dig tills du tar bort den.
Så hänger det ihop
Section titled “Så hänger det ihop”Merge pull request gör en mergeMergeAtt föra ihop ändringarna från två branches till en. Git gör det automatiskt när det går och ber om hjälp när samma rader ändrats på olika sätt.Läs mer om merge av grenen in i main på GitHub, precis som git merge i
modul 4. GitHub skapar alltid en merge-commit, även när en fast-forward hade gått. Det gör att man i historiken
kan se var varje pull request fördes in.
GitHub erbjuder tre sätt, i menyn bredvid knappen:
| Sätt | Vad som händer |
|---|---|
| Create a merge commit | Alla commits från grenen behålls, och en merge-commit visar var de fördes in. |
| Squash and merge | Alla commits från grenen slås ihop till en enda commit på main. |
| Rebase and merge | Commitsen läggs efter varandra på main, utan merge-commit. |
Kursen använder Create a merge commit, eftersom det är samma merge som du redan kan.
Efter sammanslagningen hämtar du main med git pull. Det blir en fast-forward hos dig, eftersom du inte har
gjort något på main sedan sist: din main flyttas bara fram till GitHubs merge-commit.
Exempel
Section titled “Exempel”Pull request nummer 1 har förts in på GitHub, och grenen har tagits bort där. Hos dig:
$ git switch mainSwitched to branch 'main'Your branch is up to date with 'origin/main'.$ git pullFrom github.com:ditt-namn/resplan-samarbete 7e11a5c..7079290 main -> origin/mainUpdating 7e11a5c..7079290Fast-forward resplan.txt | 1 + 1 file changed, 1 insertion(+)$ git log --oneline --graph* 7079290 (HEAD -> main, origin/main) Merge pull request #1 from ditt-namn/dag-3-gavle|\| * 27de834 (origin/dag-3-gavle, dag-3-gavle) Lägg till dag 3: Gävle|/* 7e11a5c Första versionen av resplanengit switch main säger up to date, men det gäller bara det din dator visste innan. Först git pull hämtar
merge-commiten. Den heter Merge pull request #1 from ….
Ta bort grenen hos dig. git fetch --prune tar bort origin/dag-3-gavle, eftersom grenen inte längre finns på
GitHub:
$ git branch -d dag-3-gavleDeleted branch dag-3-gavle (was 27de834).$ git fetch --pruneFrom github.com:ditt-namn/resplan-samarbete - [deleted] (none) -> origin/dag-3-gavleÖvning
Section titled “Övning”Vanliga problem
Section titled “Vanliga problem”Testa dig själv
Section titled “Testa dig själv”Sammanfattning
Section titled “Sammanfattning”- Merge pull request för in grenen i
mainpå GitHub, med en merge-commit. - Kursen använder Create a merge commit. Squash och rebase finns också.
- Hämta resultatet med
git switch mainochgit pull. - Ta bort grenen på GitHub och hos dig med
git branch -d, och städa medgit fetch --prune.