Ik heb 2 mappen in mijn GitHub-repository. Ik zou er graag een willen verwijderen. Hoe kon ik dat doen zonder de hele repository te verwijderen en opnieuw te maken?
Antwoord 1, autoriteit 100%
Verwijder directory van git en local
Je zou ‘master’ kunnen afrekenen met beide mappen;
git rm -r one-of-the-directories // This deletes from filesystem
git commit . -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)
Verwijder directory van git maar NIET lokaal
Zoals vermeld in de opmerkingen, wat je meestal wilt doen, is deze map uit git verwijderen, maar niet volledig uit het bestandssysteem (lokaal)
Gebruik in dat geval:
git rm -r --cached myFolder
Antwoord 2, autoriteit 13%
Om map/directory alleen uit de git-repository te verwijderen en niet uit de lokale, probeer 3 eenvoudige commando’s.
Stappen om map te verwijderen
git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master
Stappen om die map in de volgende commits te negeren
Om die map van volgende commits te negeren, maak je één bestand in de hoofdmap (hoofdprojectdirectory waar de git is geïnitialiseerd) met de naam .gitignore
en zet die mapnaam erin. U kunt zoveel bestanden/mappen negeren als u wilt
.gitignorebestand ziet er zo uit
/FolderName
Antwoord 3, autoriteit 3%
Als, om wat voor reden dan ook, wat karmakaze zei niet werkt, kunt u proberen de gewenste map te verwijderen met of met uw bestandssysteembrowser (bijv. In Windows Verkenner). Na het verwijderen van de map, geeft u de opdracht:
git add -A
en dan
git commit -m 'deleting directory'
en dan
git push origin master
.
Antwoord 4
Je kunt dit proberen:
git rm -rf <directory_name>
Het zal de directory geforceerd verwijderen.
Antwoord 5
Als je de bestanden in de directory verwijdert (met git rm
zoals de andere antwoorden uitleggen), dan bestaat de directory niet meer wat betreft git. Je kunt geen lege map vastleggen, en je kunt er ook geen verwijderen.
Dit is anders dan subversie waarbij je expliciet svn rm emptyfolder/
moet gebruiken, en dit is overigens de reden waarom de man
-pagina voor git zichzelf omschrijft als “de stomme contenttracker”
Een antwoord op “Hoe kan ik voeg een lege map toe aan een git-repository”links naar de FAQ over dit onderwerp:
Momenteel het ontwerp van de git-index
(staging area) staat alleen bestanden toe om
worden vermeld, en niemand competent genoeg
om de wijziging aan te brengen om leeg toe te staan
directories heeft genoeg om gegeven
deze situatie om het te verhelpen.Mappen worden automatisch toegevoegd
bij het toevoegen van bestanden erin. Dat
is, mappen hoeven nooit te worden toegevoegd
naar de repository en worden niet gevolgd
alleen.Je kunt zeggen “
git add <dir>
” en het
zal daar bestanden aan toevoegen.Als je echt een map nodig hebt om
bestaan in kassa’s moet u een . maken
bestand erin. .gitignore werkt goed voor
dit doel; je kunt het leeg laten,
of vul de namen in van bestanden die u
verwacht in de directory te verschijnen.
Antwoord 6
Ik had de map al eerder vastgelegd en wil de map ook uit de geschiedenis verwijderen.
Ik heb het volgende gedaan:
Map toevoegen aan .gitignore
:
echo Folder_Name/ >> .gitignore
Verwijderen van alle vastleggingen:
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch Folder_Name/' --prune-empty --tag-name-filter cat -- --all
verwijder de refs uit de oude commits:
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
Zorg ervoor dat alle oude refs volledig zijn verwijderd
rm -Rf .git/logs .git/refs/original
Voer een vuilnisophaaldienst uit
git gc --prune=all --aggressive
u wijzigingen doorsturen naar de online repository:
git push
Je bent hier klaar.
Maar je kunt het volgende doen om alle wijzigingen naar alle branches te pushen met:
Maar wees voorzichtig met dit commando!
git push origin --all --force
git push origin --tags --force
Daarna werd de map verwijderd van git, maar niet van de lokale schijf.
Antwoord 7
Ga naar je git Directory en typ het volgende commando:
rm -rf <Directorynaam>
Nadat u de map hebt verwijderd, voert u de wijzigingen door:
git commit -m “Uw toezeggingsbericht”
Druk vervolgens eenvoudigweg de wijzigingen door in de externe GIT-directory:
git push origin <Branchnaam>
Antwoord 8
voor het verwijderen van lege mappen
Ik wilde een lege map verwijderen (map) die ik heb gemaakt, Git kan het niet verwijderen, na wat onderzoek dat ik heb geleerd
Git volgt geen lege mappen. Als u een lege map in uw werkboom hebt, moet u deze eenvoudig worden verwijderd met
rm -r folderName
Het is niet nodig om Git te betrekken.
Antwoord 9
U kunt de map lokaal verwijderen en duwen, als volgt:
git rm -r folder_name
git commit -m "your commit"
git push origin master
Antwoord 10
Ik gebruik meestal git add --all
om bestanden / mappen uit Remote Repositories te verwijderen
rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master
master
kan worden vervangen door een andere tak van de repository.
Antwoord 11
U kunt Atlasian Source Tree (Windows) gebruiken (https://www.atlassian.com/ Software / Sourcetree / Overzicht ).
Selecteer gewoon bestanden van BOOM en drukknop “Verwijderen” aan de bovenkant. Bestanden worden verwijderd van lokale repository en lokale git-database. Ga dan vast en duw dan.
Antwoord 12
Een van mijn collega suggereerde bfg repo-cleaner die ik krachtig denk. Het verwijdert niet alleen ongewenste gegevens, maar reinigt u ook uw repository van gerelateerde commit-informatie.
Antwoord 13
eerste git-opdracht moet weten wie je bent voordat je iets verwijdert
- git init
- git config-user.name “Iemand”
- git config-user.email “[email protected]”
- git rm -r
- git commit -m “DIRE DIR” verwijderen “
- Git Push Origin Master
Antwoord 14
Om nieuwe map toe te voegen:
mkdir <YOUR-DIRECTORY>
Maar nu is Git niet op de hoogte van deze nieuwe map, omdat Git de bestanden bijhoudt, niet de mappen
DIRECTORY
git status
Git zal niet op de hoogte zijn van de wijziging die we hebben aangebracht, dus voegen we een verborgen bestand .keep
toe om Git bewust te maken door deze nieuwe wijziging.
touch /YOUR-directory/.keep
Als je nu op git status
klikt, zal Git op de hoogte zijn van de wijzigingen.
En als u de map wilt verwijderen, moet u dit commando gebruiken.
rm -r <YOUR-DIRECTORY>
En als je het hebt gecontroleerd met behulp van git status
, zul je zien dat de map is verwijderd.
Antwoord 15
Een combinatie van de 2 antwoorden werkte voor mij
git rm -r one-of-the-directories
git commit . -m "Remove duplicated directory"
git push
als het nog steeds een waarschuwing toont, verwijder dan de bestanden handmatig
git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
git push
Antwoord 16
probeer rm -r -f <folder name>
of rm -r --force <folder name>
–
een map met geweld verwijderen