Hoppa till innehåll

Skicka till GitHub: git push och git clone

  • Att byta adress på ett fjärr-repository med git remote set-url.
  • Att skicka dina commits och grenarBranchEn egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.Läs mer om grenar till GitHub med git push.
  • Att hämta en kopia från GitHub med git clone.

Nu har du ett konto, ett tomt repository på GitHub och en inloggning som fungerar. Det som återstår är att skicka resplanen dit. Sedan finns historiken kvar även om datorn går sönder, och du kan hämta den till vilken dator som helst.

Det är samma kommandon som i lektion 2. Bara adressen är ny. I lektion 2 kopplade du resplan-git till mappen server/resplan.git under namnet origin. Nu ska origin peka på GitHub i stället. git remote set-url byter adressen och behåller namnet.

Adressen hittar du på repositoryts sida på GitHub. Välj HTTPS eller SSH, beroende på vad du ställde in i lektion 4.

Byt adress och kontrollera:

Terminal
$ git remote set-url origin https://github.com/ditt-namn/resplan.git
$ git remote -v
origin https://github.com/ditt-namn/resplan.git (fetch)
origin https://github.com/ditt-namn/resplan.git (push)

Använder du SSH ser adressen ut så här i stället: git@github.com:ditt-namn/resplan.git.

Skicka sedan main, precis som i lektion 2:

Terminal
git push -u origin main

Utskriften ser ut som i lektion 2. Git packar och skickar commits och filer, och slutar med tre rader som säger att grenen main nu finns på GitHub och att din main följer origin/main. Ladda om repositoryts sida på GitHub. Nu syns resplan.txt, och under Commits finns hela din historik.

git push utan namn skickar bara grenar som redan har en motsvarighet på origin. En ny gren skickar du första gången med -u, på samma sätt som main:

Terminal
$ git switch -c packlista
Switched to a new branch 'packlista'
$ git push
fatal: The current branch packlista has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin packlista
To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
$ git push -u origin packlista
To ../server/resplan.git
* [new branch] packlista -> packlista
branch 'packlista' set up to track 'origin/packlista'.

Utskrifterna i exemplet är gjorda mot mappen från lektion 2. Mot GitHub står GitHubs adress efter To.

git clone fungerar som i lektion 1 och 2, men för ett privat repository behöver du vara inloggad:

Terminal
$ git clone git@github.com:ditt-namn/resplan.git resplan-andra-datorn
Cloning into 'resplan-andra-datorn'...

Efter Cloning into skriver GitHub några rader om hur mycket som hämtas, som när du klonade Hello-World i lektion 1.

Låt båda mapparna vara kvar. Du använder dem i nästa lektion.

1. origin pekar på mappen från lektion 2. Hur får du den att peka på GitHub i stället?
Visa rätt svar
  • git remote set-url origin <adressen på GitHub>
2. Du har skapat grenen packlista. git push svarar "The current branch packlista has no upstream branch". Vad gör du?
Visa rätt svar
  • git push -u origin packlista: Första gången en gren skickas behövs -u och grenens namn.
3. Du har ändrat resplan.txt men inte gjort git add eller git commit. Vad skickar git push?
Visa rätt svar
  • Inget av ändringen – bara commits skickas

  • git remote set-url origin <adress> byter adressen till ett fjärr-repository.
  • git push -u origin main skickar main till GitHub första gången. Sedan räcker git push.
  • En ny gren skickas första gången med git push -u origin <gren>.
  • git clone <adress> <mapp> hämtar en kopia från GitHub, också till en annan dator.
  • Bara det som finns i commits skickas. Gör git add och git commit innan git push.