C'è un modo per rimuovere completamente una directory e la sua cronologia da GitHub?Rimozione codice da GitHub
risposta
Se stai chiedendo di eliminare un progetto da GitHub, apri il tuo progetto, fai clic sulla scheda "Amministratore" (o naviga direttamente su https://github.com/username/project_name/edit) e, in fondo alla pagina, fai clic su "Elimina questo repository". Ti chiederà di confermare questo, e poi è sparito.
Se si desidera cancellare una parte del proprio repository, è necessario farlo nel repository git e inserirlo in GitHub.
GitHub ha scritto a howto about this nelle loro FAQ. Non l'ho provato da solo, quindi non posso guidarti ulteriormente, ma probabilmente puoi gestirlo da solo qui.
In entrambi i casi, questo, naturalmente, non elimina terzi tira - se qualcuno ha tirato il repository prima l'eliminazione, è fuori, senza che tu sia in grado di fare molto su di esso (altro che cercare il " piuttosto per favore "-technique).
Vai alla scheda modifica; c'è un link di cancellazione nella parte inferiore della pagina.
Non come in profondità come la risposta attesa. Non ho menzionato il nome dell'etichetta, quale lato della pagina, ecc. –
Vorrei poter modificare. Intendevo una risposta accettata. –
Per eliminare selettivamente un file o una directory (e tutta la relativa cronologia associata), è possibile utilizzare git filter-branch
.
Questo è molto utile quando si desidera eliminare completamente i file controllati nel repository per errore.
La sintassi è semplice:
git filter-branch --tree-filter 'rm -f filename' HEAD
Maggiori informazioni sul man page.
In realtà non risponde alla domanda posta dall'autore, tuttavia è decisamente utile. –
questo è il modo più semplice la elimina una directory dal repository GitHub, ma non di sistema locale:
git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master
funziona ma questa non rimuove la cronologia del commit – mk7
Non so dove l'ho sentito prima, ma c'è un bel detto nella community Git: "Git funziona proprio come il mondo reale: se vuoi riscrivere la storia, hai bisogno di una cospirazione". IOW, se vuoi rimuovere una directory dalla cronologia, tutti quelli che hanno mai clonato quel repository devono essere "su di esso" –
Sì, questo, o erroneamente estraggono dal repository git centrale. Immagino che in questo modo verrebbero cancellate anche le loro storie locali, anche se non ne sono sicuro ... –
No, non lo faranno. La vecchia storia viene cancellata solo quando non viene più referenziata da nulla * e * si esegue il garbage collector. Il che significa che per impostazione predefinita non verrà cancellato per almeno 2 settimane, perché è per quanto tempo rimarranno nel reflog. Finché sono nel reflog, tu ... –