Hoppa till innehåll

För in en pull request

  • 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 main med 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.

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.

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.

Pull request nummer 1 har förts in på GitHub, och grenen har tagits bort där. Hos dig:

Terminal
$ git switch main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
$ git pull
From github.com:ditt-namn/resplan-samarbete
7e11a5c..7079290 main -> origin/main
Updating 7e11a5c..7079290
Fast-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 resplanen

git 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:

Terminal
$ git branch -d dag-3-gavle
Deleted branch dag-3-gavle (was 27de834).
$ git fetch --prune
From github.com:ditt-namn/resplan-samarbete
- [deleted] (none) -> origin/dag-3-gavle
1. Pull requesten är införd på GitHub. Hur får du ändringen till din dator?
Visa rätt svar
  • git switch main och git pull
2. Vad gör git fetch --prune?
Visa rätt svar
  • Tar bort grenar som origin/dag-3-gavle hos dig när de inte längre finns på servern
3. Vilket sätt att föra in en pull request använder kursen?
Visa rätt svar
  • Create a merge commit: Det är samma merge som i modul 4.

  • Merge pull request för in grenen i main på GitHub, med en merge-commit.
  • Kursen använder Create a merge commit. Squash och rebase finns också.
  • Hämta resultatet med git switch main och git pull.
  • Ta bort grenen på GitHub och hos dig med git branch -d, och städa med git fetch --prune.