Quiero que git deje de seguir mi registro de desarrollo local (log/development.log) en nuestros repositorios. ¿Es esto posible y cómo puedo hacerlo?Eliminar un archivo existente de un Git Repo
Respuesta
sólo para dar la respuesta completa a la vez:
de Klemens: Es necesario agregar el archivo a su archivo
.gitignore
algún lugar por encima del archivo deseado en el repositorio. es decir,$ cd $ cat >> .gitignore development.log C-d
desde m. Narębski: A continuación, deberá eliminar el archivo de la cesión temporal ejecutando "
git rm --cached <file>
y luego cometer esta eliminación"
Si también estaba esperando para hacer la mirada de recompra como si nunca había rastreado ese archivo, es decir mucho más complicado y altamente desaconsejado, ya que no solo crea compromisos nuevos para cada compromiso en su historial, destruyendo la interoperabilidad de una manera desagradable entre otras personas que han clonado su repositorio, sino que también deja a cada uno de esos compromisos sin probar (asumiendo prueba tus commits antes de hacerlos).
Con esta advertencia en mente, la herramienta que está buscando si ese es su objetivo es filter-branch
. El primer ejemplo hace exactamente lo que estoy describiendo.
utilizando git rm --cached parece haberlo eliminado no solo de la rama, sino que cuando lo conecto a otro sistema elimina los archivos físicamente en ese sistema. ¿Alguna idea de lo que está pasando allí? – biagidp
En respuesta a lo anterior: creo que el problema estaba en que no tenía .gitignore en el sistema alternativo antes de tirar los cambios, por lo que la eliminación eliminó la copia local. Al menos esa es la teoría – biagidp
agregue el archivo gitignore.
Esto es solo la mitad de la respuesta. Las entradas '.gitignore' no se aplican a los archivos que ya están siendo rastreados. –
La segunda parte es 'git rm --cached
¿Por qué no hay un comando simple para que git reevalúe todos los archivos actualmente rastreados de acuerdo con el archivo .gitignore actual? ... o es eso ejerciendo demasiado sentido común? : p – Alexander
Para detener el seguimiento del archivo, simplemente use git rm --cached <filename>
.
Pero como se señala por los otros aquí, agregar el archivo a .gitignore puede evitar que vuelva a agregarlo accidentalmente más tarde.
- 1. Cómo eliminar un blob de git repo
- 2. Git Clone en otro Git Repo existente
- 3. Añadir svn repo al repositorio git existente?
- 4. Importación de un Repo SVN en un repositorio de Git EXISTENTE como una rama
- 5. Git repo inside repo
- 6. eliminar un archivo de control de GIT
- 7. Descargue un repo Git de BitBucket
- 8. Sacando solo un directorio de un git repo
- 9. Empujando subárboles en un git repo
- 10. ¿Cómo subir un git repo a gerrit?
- 11. ¿Es seguro usar un copiado git repo?
- 12. ¿Cómo puedo mostrar el contenido de un archivo en un estado específico de un git repo?
- 13. Retrospectivamente add --recursive a un git repo
- 14. Importación de un git repo como una rama en otro git repo
- 15. clonación git repo
- 16. Cómo extraer un archivo con historial de commit de un git repo con index-filter & co
- 17. ¿Cómo puedo obtener solo los autores de un archivo específico de un git-repo?
- 18. Eliminar un directorio permanentemente de git
- 19. git initialize remote repo
- 20. Reinicializar Git Repo
- 21. Cómo reemplazar git repo?
- 22. Dividir enorme repo git
- 23. Cómo importo un módulo CVS existente en un subdirectorio de un repositorio git existente
- 24. git submódulo de Hg repo?
- 25. Escuchando cambios de Git Repo
- 26. Reemplazar git repo remoto (Heroku)
- 27. Git: repo contiene un directorio vacío, ¿qué ocurre?
- 28. git eliminar las revisiones más antiguas de un archivo
- 29. Forma correcta de compartir un git repo sobre ssh
- 30. ¿Cuál es el propósito de bifurcar un git repo?
posible duplicado de [Haciendo que "git" olvide "sobre un archivo que * fue * rastreado pero ahora es" .gitignored "] (http://stackoverflow.com/questions/1274057/making-git-forget-about-a -file-that-was-track-but-is-now-gitignored) – Cascabel