Hvordan fjerne en katalog fra git repository?

Jeg har to kataloger på GitHub-depotet mitt. Jeg vil gjerne slette en av dem. Hvordan kan jeg gjøre det uten å slette og opprette hele depotet på nytt?

Løsning

Fjern katalog fra git og lokal

Du kan sjekke ut 'master' med begge katalogene;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin  (typically 'master', but not always)

Fjern katalog fra git, men IKKE lokalt

Som nevnt i kommentarene, det du vanligvis vil gjøre er å fjerne denne katalogen fra git, men ikke slette den helt fra filsystemet (lokalt)

I så fall bruk:

git rm -r --cached myFolder
Kommentarer (16)

Hvis det karmakaze sa av en eller annen grunn ikke fungerer, kan du prøve å slette katalogen du vil bruke eller med filsystemleseren din (f.eks. I Windows File Explorer). Etter å ha slettet katalogen, utsteder kommandoen:
git add -A
og deretter
git commit -m 'deleting directory'
og deretter
git push origin master.

Kommentarer (2)

Hvis du fjerner filene i katalogen (med git rm som de andre svarene forklarer), eksisterer katalogen ikke lenger for git. Du kan ikke committe en tom katalog, og du kan heller ikke fjerne en.

Dette er i motsetning til subversion hvor du eksplisitt må svn rm emptyfolder/, og er forøvrig grunnen til at man-siden for git beskriver seg selv som "the stupid content tracker"

Et svar på "How do I add an empty directory to a git repository" lenker til FAQ om dette emnet:

Foreløpig utformingen av git-indeksen (staging area) tillater bare at filer kan være oppført, og ingen er kompetente nok til å gjøre endringen for å tillate at tomme kataloger har brydd seg nok om denne situasjonen for å avhjelpe den.

Kataloger legges til automatisk når du legger til filer i dem. Det er, kataloger trenger aldri å legges til til depotet, og blir ikke sporet på egen hånd.

Du kan si " git legge til " og det vil legge til filer der inne.

Hvis du virkelig trenger en katalog å finnes i kassene, bør du opprette en fil i den. fil i den. .gitignore fungerer bra for dette formålet; du kan la den være tom, eller fylle ut navnene på filene du forventer å dukke opp i katalogen.

Kommentarer (0)