Kan inte kopiera från example

  • Författare
  • Meddelande
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Kan inte kopiera från example

Inlägg14 sep 2017, 11:44

Du försöker kopiera filer från example-katalogen och får till svar "No such file or directory". Det kan betyda att du har råkat flytta eller ta bort filer. Ingen fara! Tack vare att kursrepot är ett gitrepo går det att återställa sånt som försvinner. Git är ett versionshanteringssystem och har möjlighet att återställa alla tidigare versioner av ett repo.

Du kan söka efter t.ex. "git accidentally deleted folder". Det kan leda dig till svar på Stack Overflow, t.ex. Restore a deleted folder in a Git repo. Du kan också fortsätta läsa här så förklarar jag vad man behöver göra.

Först måste vi ta reda på om det är något som har försvunnit. Det gör vi genom att fråga git vad nuvarande status för repot är.
Kod: Markera allt
git status

Resultatet kan se ut på minst två olika sätt.


"Nothing to commit"
Kod: Markera allt
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

Om du får tre rader till svar, varav den sista raden säger "nothing to commit, working directory clean" så får du leta efter en annan lösning. Alla filer som ska finnas i kursrepot finns där.

Kanske står du på fel plats när du försöker kopiera? Använd dig av kommandon som cd, pwd och ls för att ta reda på var du är och vilka filer som finns. Läs instruktionerna extra noga för att ta reda på vilken katalog du borde ställa dig i innan du försöker kopiera.



"Changes not staged for commit"
Kod: Markera allt
$ git status
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    example/hello/hello-fel.py_
        deleted:    example/hello/hello-name.py
        deleted:    example/hello/hello.py

no changes added to commit (use "git add" and/or "git commit -a")

Om du däremot får en massa rader till svar och en av raderna i mitten säger "Changes not staged for commit:" så betyder det att du har ändrat på filer i kursrepot (utöver dina egna filer, kursrepon är inställda till att inte titta i me-katalogen).

Förhoppningsvis ser du en lista där varje rad börjar med ordet "deleted:" och din terminal kanske till och med visar det med röd text.

Grattis, nu är det busenkelt att återställa. Undersök raderna med deleted för att se minsta gemensamma nämnare. I mitt exempel ovan ser vi att alla de försvunna filerna ligger i katalogen example. För att återställa dem skriver vi ett kommando med git checkout.
Kod: Markera allt
git checkout -- example

Om det gick som det skulle så får du inget svar av det kommandot. Du kan istället testa att se om det blev återställt genom att kolla status igen.
Kod: Markera allt
$ git checkout -- example

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean




Annat?

Det kan dyka upp mycket olika information när man kör git status. Om du är nyfiken på vad allt betyder kan du antingen söka efter det i din favoritsökmotor, en rad i taget, eller fråga här.

Vilka är online

Användare som besöker denna kategori: Google [Bot] och 17 gäster