Stavo lavorando su un repository sul mio account GitHub e questo è un problema su cui mi sono imbattuto. progettoRimuovi la cartella e il suo contenuto da git/cronologia di GitHub
- Node.js con una cartella con alcuni pacchetti NPM installati
- I pacchetti erano in
node_modules
cartella - Aggiunto quella cartella a git repository e ha spinto il codice per github (non è stato pensare al npm parte a quel tempo)
- sono reso conto che non si ha realmente bisogno di quella cartella per essere una parte del codice
- eliminata quella cartella, spinto
In questo caso, la dimensione del repository git totale era intorno a 6MB dove il codice effettivo (tutti tranne quella cartella) era solo intorno a 300 KB.
Ora quello che sto cercando alla fine è un modo per sbarazzarsi dei dettagli di quella cartella del pacchetto dalla cronologia di git, quindi se qualcuno lo clona, non è necessario scaricare 6 MB di valore della cronologia in cui gli unici file effettivi riceveranno fin dall'ultimo commit sarebbero 300KB.
ho cercato soluzioni possibili per questo e provato questi 2 metodi
- Remove file from git repository (history)
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
Il Gist sembrava ha funzionato dove, dopo l'esecuzione dello script, è ha mostrato che si è sbarazzato di quella cartella e in seguito ha mostrato che sono stati modificati 50 diversi commit. Ma non mi ha permesso di spingere quel codice. Quando ho provato a spingerlo, ha detto Branch up to date
ma ha mostrato che 50 commit sono stati modificati su un git status
. Anche gli altri 2 metodi non sono stati d'aiuto.
Ora, anche se ha dimostrato che si è sbarazzato della cronologia di quella cartella, quando ho controllato la dimensione di quel repository sul mio localhost, era ancora intorno ai 6 MB. (Ho anche eliminato la cartella refs/original
ma non ho visto la modifica della dimensione del repository).
Quello che sto cercando di chiarire è, se c'è un modo per sbarazzarsi non solo della cronologia del commit (che è l'unica cosa che penso sia accaduta) ma anche di quei file git sta tenendo presumendo che uno voglia di rollback.
permette di dire una soluzione si presenta per questo e viene applicato sul mio localhost ma cant essere riprodotto a quella GitHub pronti contro termine, è possibile clonare che repo, rollback al primo commit eseguire il trucco e spingerlo (o fa che significa che git avrà ancora una storia di tutti questi commit? - alias. 6MB).
Il mio obiettivo finale qui è fondamentalmente trovare il modo migliore per sbarazzarsi del contenuto della cartella da git in modo che un utente non debba scaricare 6 MB di roba e ancora possibilmente avere gli altri commit che non hanno mai toccato i moduli cartella (che è più o meno tutti) nella storia di git.
Come posso fare questo?
Se una delle risposte di seguito ha risolto il problema, forse dovresti considerare di accettarne una come risposta alla tua domanda. https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – starbeamrainbowlabs