2011-11-13 26 views
5

Empujé mi repositorio local a GitHub. En el proceso de confirmar mi código, olvidé crear un archivo .gitignore. Como resultado, me comprometí y posteriormente envié algunas carpetas y archivos que no quería en GitHub (o en mi repositorio local, para el caso).¿Cómo aplicar gitignore luego?

¿Cómo puedo aplicar .gitignore ahora, para poder eliminar algunas carpetas y archivos no deseados en el futuro?

Respuesta

6

Puede git rm <unnecessary file and folder names> luego añadirlos a su archivo .gitignore, que quitarlos de que se comprometan a seguir. El problema es que permanecerán en el historial a menos que modifiques las confirmaciones anteriores. Si no hay datos confidenciales en esos archivos, yo diría que dejen el historial tal como está. Si necesita eliminar datos confidenciales de su historial de repositorios, consulte GitHub's help article on the subject

2

De la memoria tiene que quitarlo y volverlo a agregar. Git ignorar entrará en vigencia.

Answered already?

2

Si esta es tu repositorio privado y no se ha publicado todavía, utilizar filter-branch para editar la historia:

git filter-branch --index-filter ' 
    git rm -r --cached --ignore-unmatched bin; 
' --all 

A continuación, añadir/editar el archivo .gitignore:

>> .gitignore echo bin 
git add .gitignore 
git commit -m 'add gitignore files' 

Dado que ya ha publicado su h istory, es una buena práctica no reescribirlo. Basta con retirar el directorio bin y añadir un archivo .gitignore

git rm -r bin 
# add .gitignore 
git commit -m 'remove and ignore bin folder' 
+0

es una forma de eliminar automáticamente todas las carpetas/archivos usando gitignore? ¿Realmente tengo que ejecutar los comandos para cada archivo/carpeta que deseo eliminar? – Rookian

+0

Simplemente puede hacer 'git rm -r --cached --ignore-unmatched file1 folder1 file2 folder2 folder3 * bak test- *'. Solo asegúrate de comprender las implicaciones de la reescritura de la historia, si vas por la ruta 'filter-branch'. – knittl