Ho 2 directory sul mio repository GitHub. Vorrei eliminarne una. Come potrei farlo senza cancellare e ricreare l'intero repository?
Potresti fare il checkout di 'master' con entrambe le directory;
git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)
Come menzionato nei commenti, ciò che di solito si vuole fare è rimuovere questa directory da git ma non cancellarla completamente dal filesystem (locale)
In questo caso usate:
git rm -r --cached myFolder
Se, per qualche motivo, quello che ha detto karmakaze non funziona, potresti provare a cancellare la directory che vuoi usando o con il tuo browser di file system (es. in Esplora file di Windows). Dopo aver cancellato la directory, emettendo il comando:
git add -A
e poi
git commit -m 'deleting directory'
e poi git commit -m ལeliminando la directory'
e poi
git push origin master
.
Se rimuovi i file nella directory (con git rm
come spiegano le altre risposte), allora la directory non esiste più per quanto riguarda git. Non si può fare il commit di una directory vuota, né si può rimuoverla.
Questo è diverso da subversion dove devi esplicitamente svn rm emptyfolder/
, ed è incidentalmente il motivo per cui la pagina man
per git si descrive come "lo stupido content tracker"
Una risposta su "Come aggiungo una directory vuota a un repository git" rimanda alla FAQ su questo argomento:
Attualmente il design dell'indice git (area di sosta) permette solo ai file di essere elencati, e nessuno abbastanza competente da fare il cambiamento per permettere le directory vuote directory si è preoccupato abbastanza questa situazione per porvi rimedio.
Le directory vengono aggiunte automaticamente quando si aggiungono file al loro interno. Questo è che le directory non devono mai essere aggiunte al repository, e non sono tracciate da sole.
Puoi dire "
git add <dir>
"ed esso aggiungerà i file lì dentro.Se hai davvero bisogno che una directory esista in casse dovresti creare un file in essa. .gitignore funziona bene per questo scopo; puoi lasciarlo vuoto, o riempire i nomi dei file che ti aspetti di mostrare nella directory.