Git-begrepp och standardgrenar
↑CLI-exempel märkta Bash fungerar i Git Bash på Windows 10 och Windows 11 eller Bash på Linux, med Git installerat. Bash-tilldelningar som DEFAULT_BRANCH=main är kommandotolkens syntax; kör exemplen i Git Bash i stället för att klistra in dem i PowerShell eller Kommandotolken.
Git blir lättare när du skiljer på en lokal gren, ett fjärrrepository och en remote-tracking-referens. Varken Git eller en lagringstjänst kräver att standardgrenen heter main. Äldre projekt använder ofta master, och team kan välja andra namn.
Snabbguide
Section titled “Snabbguide”| Begrepp | Betydelse |
|---|---|
main / master |
Vanliga men helt vanliga grennamn. Projektet väljer sin egen standardgren. |
origin |
Konventionellt fjärrnamn som vanligtvis skapas vid kloning. Det är ett alias, inte ett särskilt Git-kommando. |
origin/main |
Lokal remote-tracking-referens till den senast hämtade positionen för main på origin. Den uppdateras inte automatiskt när andra pushar. |
HEAD |
Referens till aktuell utcheckad commit, normalt via en lokal gren. Vid detached HEAD pekar den direkt på en commit. |
upstream |
Kan betyda en grens tracking branch eller ett andra fjärrrepository, ofta originalprojektet i ett fork-arbetsflöde. |
fetch |
Hämtar objekt och fjärrreferenser utan att integrera dem i arbetsgrenen. |
pull |
Hämtar och integrerar ändringar enligt val för merge/rebase. |
push |
Skickar commits och uppdaterar en servergren om du har behörighet. |
merge |
Kombinerar historiker och kan skapa en merge-commit. |
rebase |
Spelar upp commits på en annan bas och skapar nya commit-ID:n. Samordna innan du ändrar delad historik. |
Hitta projektets verkliga standardgren
Section titled “Hitta projektets verkliga standardgren”Öppna repositoryt och kontrollera Current Branch. På GitHub visas standardgrenen under repositoryts Settings → Branches. På GitLab kan den finnas i Settings → Repository om du har rätt behörighet. Att en gren visas i Desktop betyder inte automatiskt att den är standardgren.
git status --short --branchgit remote -vgit remote show origingit branch -agit remote show origin frågar fjärrservern och visar vanligtvis HEAD branch. Om den finns lagrad lokalt kan git symbolic-ref refs/remotes/origin/HEAD visa den lokala fjärr-HEAD-referensen. Den kan saknas eller vara gammal, så kontrollera servern vid osäkerhet.
Exempel med master
Section titled “Exempel med master”Anta att GitLab använder master och fjärrrepositoryt heter origin. Kontrollera först fjärrinställningarna och säkra lokala ändringar:
DEFAULT_BRANCH=master # Verifiera på servern före användning.git status --short --branchgit switch "$DEFAULT_BRANCH"git fetch origingit pull --ff-only origin "$DEFAULT_BRANCH"git switch -c feature/42-tree-explorerSamma exempel fungerar med main genom DEFAULT_BRANCH=main. Om fjärrrepositoryt heter något annat än origin använder du det namnet. Byt inte gren på chans när du har lokala ändringar; kontrollera git status först.
Varför origin/main skiljer sig från main
Section titled “Varför origin/main skiljer sig från main”main är en lokal gren som kan flyttas när du gör commits. origin/main visar den senast hämtade positionen på fjärrservern. Om en kollega pushar till servern står din origin/main still tills du kör fetch. Även efter fetch kan din lokala main ligga efter tills du integrerar ändringarna.
Två betydelser av upstream
Section titled “Två betydelser av upstream”git push -u origin feature/example ställer in vilken servergren den lokala grenen ska spåra. I ett fork-arbetsflöde kan upstream i stället vara namnet på det ursprungliga projektets fjärrrepository, medan origin pekar på din fork. Det är två olika typer av inställningar.
Kontrollfråga: Uppdateras din lokala master automatiskt när origin/master förändras efter fetch? Nej. Måste feature/x finnas på GitHub? Nej, den kan bara finnas lokalt.
Läs vidare om grenar, dagligt arbete och Git-referensen.
