Skyddade grenar
Det här lär du dig
Section titled “Det här lär du dig”- Vad en skyddad gren är.
- Att skydda
mainså att varje ändring måste gå genom 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. - Vad som händer när någon ändå försöker skicka direkt till
main.
Varför behövs det här?
Section titled “Varför behövs det här?”I modul 4 kom du överens med dig själv om att main alltid ska fungera. Men en överenskommelse glöms lätt,
särskilt när man är många. En skyddad grenBranchEn egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.Läs mer om gren gör överenskommelsen till en regel som GitHub
kontrollerar. Då kan ingen råka skicka en ändring till main som ingen har sett.
Så hänger det ihop
Section titled “Så hänger det ihop”Ett skydd för en gren är en regel på GitHub. De vanligaste valen är:
| Val på GitHub | Betyder |
|---|---|
| Require a pull request before merging | Ingen kan skicka direkt till grenen. Ändringar måste komma via en pull request. |
| Require approvals | Pull requesten måste godkännas av ett visst antal andra personer. |
| Do not allow bypassing the above settings | Reglerna gäller även ägaren och administratörer. |
Utan det sista valet gäller reglerna inte dig som äger repositoryt. Det är GitHubs standard, så att en ägare inte kan låsa ute sig själv. Vill du att skyddet ska gälla alla, kryssa i det.
Require approvals kräver någon annan än den som har öppnat pull requesten, eftersom ingen kan godkänna sin egen. Arbetar du ensam kryssar du därför inte i det valet. Då kan du fortfarande föra in dina egna pull requests.
Exempel
Section titled “Exempel”Med skyddet på nekas en git push direkt till main. GitHub svarar med ett felmeddelande som börjar så här:
remote: error: GH006: Protected branch update failed for refs/heads/main.Raden efter säger vilken regel som stoppade dig, till exempel att en pull request krävs. Ingenting har skickats, och din commit finns kvar hos dig. Flytta den till en gren och skicka grenen i stället:
git switch -c min-andringgit push -u origin min-andringÖppna sedan en pull request för min-andring som vanligt. Din main ligger nu en commit före origin/main.
Det rättar sig när pull requesten är införd och du har kört git pull.
Övning
Section titled “Övning”Stegen följer GitHubs instruktioner för classic branch protection rules. GitHub har också ett nyare sätt, rulesets, som fungerar på liknande sätt.
Vanliga problem
Section titled “Vanliga problem”Testa dig själv
Section titled “Testa dig själv”Sammanfattning
Section titled “Sammanfattning”- En skyddad gren har regler som GitHub kontrollerar vid varje
git pushoch sammanslagning. - Require a pull request before merging gör att alla ändringar måste gå via en pull request.
- Utan Do not allow bypassing the above settings gäller reglerna inte ägaren.
- Require approvals kräver en annan person. Arbetar du ensam, kryssa inte i den.
- En nekad
git pushtillmainlöser du genom att flytta commiten till en gren och öppna en pull request.