Estoy tratando de usar el .gitignore
archivo para excluir templates.js
ubicado en la public/app/
carpeta. Mi .gitignore
archivo se ve así:
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
Pero cuando reviso Git Gui, el templates.js
archivo todavía se muestra en él. ¿Cómo puedo excluir específicamente un archivo usando .gitignore
?
.gitignore
solo ignora el contenido que se agregará..gitignore
correcta?Respuestas:
En contraste con lo que podría sugerir el nombre "ignorar".
.gitignore
solo se consulta cuando susgit add
archivos: en otras palabras, un archivo ya agregado al (índice del) repositorio no se excluirá en función del.gitignore
.Primero, es mejor que modifique el
.gitignore
archivo de modo que ya no se agregue. Agregue la siguiente línea al.gitignore
archivo:A continuación, debe excluir el archivo del repositorio. Probablemente no desee eliminar el archivo de su sistema de archivos, esto se puede hacer con:
La
--cached
bandera garantiza que el archivo no se eliminará de su sistema de archivos. (Si no es importante, puede usargit rm public/app/template.js
, pero esto eliminará el archivo ).Antecedentes
El motivo por el
.gitignore
que no se utiliza de forma proactiva es que a veces es posible que desee anular el.gitignore
. Digamos, por ejemplo, que no desea rastrear*.log
archivos, puede especificar*.log
en el.gitignore
. Pero si hay uno específico que desea rastrear, puede agregarlogit add -f some.log
. La-f
bandera obligagit
a agregar el archivo.fuente
Una vez que un archivo ha sido 'agregado' al repositorio de git una vez, continuará siendo rastreado independientemente de si aparece o no en el archivo .gitignore.
Supongo que agregó el archivo template.js anteriormente, en cuyo caso continuará con el seguimiento de los cambios, hasta que lo elimine del repositorio. Una vez que el archivo se ha eliminado del repositorio, se ignorará correctamente a través del archivo .gitignore.
La forma de eliminar un archivo de un repositorio de git (línea de comandos) sin eliminarlo es
Luego, una vez que hagas eso e intentes comprometerte con el archivo en tu gitignore, no lo hará.
Tenga en cuenta que si agrega específicamente un archivo que tiene en su gitignore, su adición manual del archivo anulará el gitignore.
fuente
Si ya está rastreando un archivo (
git add
en él ygit commit
),.gitignore
no ayudará.Creo que lo que quieres es dejar de rastrear un archivo y luego usarlo
.gitignore
para excluirlo. Para dejar de rastrear un archivo pero conservarlo, use:git rm --cached <file>
fuente
En este caso, puede dejar de rastrear
templates.js
conComo han explicado otros,
.gitignore
solo ignora el contenido que se agregará. Por ejemplo, si usa con frecuenciagit add .
y tienetemplates.js
en su.gitignore
, entonces git no lo agregará.fuente