2009-01-14 17 views

risposta

46

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).

+4

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" –

+0

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 ... –

+0

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 ... –

4

Vai alla scheda modifica; c'è un link di cancellazione nella parte inferiore della pagina.

+0

Non come in profondità come la risposta attesa. Non ho menzionato il nome dell'etichetta, quale lato della pagina, ecc. –

+0

Vorrei poter modificare. Intendevo una risposta accettata. –

12

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.

+2

In realtà non risponde alla domanda posta dall'autore, tuttavia è decisamente utile. –

2

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 
+0

funziona ma questa non rimuove la cronologia del commit – mk7