Öva utan konto: ett fjärr-repository i en mapp
Det här lär du dig
Section titled “Det här lär du dig”- Att skapa ett tomt fjärr-repository med
git init --bare. - Att koppla ditt repository till det med
git remote add. - Att skicka dina commits med
git push -uoch hämta en kopia medgit clone.
Varför behövs det här?
Section titled “Varför behövs det här?”Ett fjärr-repository behöver inte ligga på internet. GitGitEtt program som sparar versioner av filerna i ett projekt, så att man kan se vad som ändrats, gå tillbaka till tidigare versioner och arbeta flera samtidigt.Läs mer om Git fungerar likadant med en mapp på din egen dator. Där kan du öva i lugn och ro, utan konto, lösenord eller nätverk. Allt du lär dig här gör du sedan på exakt samma sätt mot GitHub. Det enda som skiljer är adressen.
Så hänger det ihop
Section titled “Så hänger det ihop”Ett fjärr-repository är ett naket repositoryRepository (repo)En projektmapp som Git håller ordning på: alla filer i projektet plus hela historiken av sparade versioner.Läs mer om repository, utan arbetskatalog (på engelska bare
repository). Det innehåller bara det som annars ligger i mappen .git: commits och grenar. Ingen redigerar
filer där. Det tar bara emot och lämnar ut commits.
Arbetsgången är:
- Skapa fjärr-repositoryt:
git init --bare <mapp>. - Tala om för ditt repository var det finns:
git remote add origin <adress>. - Skicka grenen dit första gången:
git push -u origin main.
-u (lång form --set-upstream) gör att din main kommer ihåg att den hör ihop med main på origin.
Efter det räcker det att skriva git push och git pull, utan namn.
Exempel
Section titled “Exempel”Kims resplan har två commits. Skapa ett fjärr-repository bredvid, i mappen server:
$ git init --bare server/resplan.gitInitialized empty Git repository in /tmp/kim/server/resplan.git/.git i slutet av namnet är bara en vana. Den visar att mappen är ett fjärr-repository.
Gå in i resplanen och koppla den till fjärr-repositoryt. ../ betyder mappen ovanför den du står i:
$ cd resplan$ git remote add origin ../server/resplan.git$ git remote -vorigin ../server/resplan.git (fetch)origin ../server/resplan.git (push)Skicka main:
$ git push -u origin mainEnumerating objects: 6, done.Counting objects: 100% (6/6), done.Delta compression using up to 6 threadsCompressing objects: 100% (4/4), done.Writing objects: 100% (6/6), 526 bytes | 526.00 KiB/s, done.Total 6 (delta 1), reused 0 (delta 0), pack-reused 0To ../server/resplan.git * [new branch] main -> mainbranch 'main' set up to track 'origin/main'.De första raderna visar hur Git packar och skickar commits och filer. Det viktiga står på slutet: grenen
main finns nu på origin ([new branch]), och din main följer origin/main. Det syns också i
git status och git log:
$ git statusOn branch mainYour branch is up to date with 'origin/main'.
nothing to commit, working tree clean$ git log --oneline7620fac (HEAD -> main, origin/main) Lägg till dag 3: Gävle226c08c Första versionen av resplanenNu kan du hämta en egen kopia någon annanstans, som om du satt vid en annan dator. Gå ut ur resplan och
klona:
$ cd ..$ git clone server/resplan.git resplan-laptopCloning into 'resplan-laptop'...done.resplan-laptop har samma filer och samma historik. git clone har redan kopplat den till origin, så där
behövs varken git remote add eller -u.
Övning
Section titled “Övning”Låt mapparna vara kvar tills du är klar med modulen. I lektion 5 kopplar du resplan-git till GitHub i stället.
Vanliga problem
Section titled “Vanliga problem”Testa dig själv
Section titled “Testa dig själv”Sammanfattning
Section titled “Sammanfattning”git init --bare <mapp>skapar ett naket fjärr-repository, utan arbetskatalog.git remote add origin <adress>kopplar ditt repository till det.git remote -vvisar kopplingen.git push -u origin mainskickarmainförsta gången. Sedan räckergit push.git clone <adress> <mapp>hämtar en egen kopia, redan kopplad tillorigin.