V úložisku GitHub mám 2 adresáre. Jeden z nich by som chcel odstrániť. Ako by som to mohol urobiť bez toho, aby som musel vymazať a znovu vytvoriť celý repozitár?
Mohli by ste si vyzdvihnúť 'master' s oboma adresármi;
git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)
Ako je uvedené v komentároch, zvyčajne chcete tento adresár odstrániť z gitu, ale nie úplne vymazať zo súborového systému (lokálne)
V takom prípade použite:
git rm -r --cached myFolder
Ak z nejakého dôvodu nefunguje to, čo povedal karmakaze, môžete skúsiť odstrániť požadovaný adresár pomocou prehliadača súborového systému (napr. v Prieskumníkovi súborov systému Windows). Po vymazaní adresára zadajte príkaz:
git add -A
a potom
git commit -m 'odstránenie adresára'
a potom
git push origin master
.
Ak odstránite súbory v adresári (pomocou git rm
, ako je vysvetlené v iných odpovediach), potom adresár už nebude existovať, pokiaľ ide o git. Nemôžete odovzdať prázdny adresár, ani ho nemôžete odstrániť.
To je na rozdiel od subversion, kde musíte explicitne zadať svn rm emptyfolder/
, a mimochodom je to dôvod, prečo sa stránka man
pre git opisuje ako "hlúpy sledovač obsahu"
Odpoveď na "Ako pridám prázdny adresár do repozitára git" odkazuje na FAQ na túto tému:
V súčasnosti je návrh indexu git (oblasť na odkladanie) povoľuje iba súbory do byť uvedené v zozname, a nikto dostatočne kompetentný aby urobil zmenu, ktorá by umožnila vytvárať prázdne adresárov staral dostatočne o to, aby túto situáciu napraviť.
Adresáre sa pridávajú automaticky pri pridávaní súborov do nich. To to znamená, že adresáre sa nikdy nemusia pridávať do úložiska a nie sú sledované samostatne.
Môžete povedať "
git add <dir>
" a ono tam pridá súbory.Ak naozaj potrebujete adresár existovať v odkaze, mali by ste vytvoriť adresár súbor v ňom. .gitignore funguje dobre pre tento účel; môžete ho nechať prázdny, alebo do neho vyplniť názvy súborov, ktoré očakávate, že sa v adresári zobrazia.