una - gitignore example
.gitignore excluir archivo especĂfico (4)
En contraste con lo que el nombre "ignorar" podría sugerir.
.gitignore
solo se consulta cuando
git add
archivos: en otras palabras, un archivo ya agregado al (índice del) repositorio no se excluirá en función de
.gitignore
.
Primero es mejor modificar el
.gitignore
para que el archivo ya no se agregue.
Agregue la siguiente línea al archivo
.gitignore
:
public/app/template.js
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:
git rm --cached public/app/template.js
El indicador
--cached
asegura que el archivo no se eliminará de su sistema de archivos.
(Si no es importante, puede usar
git rm public/app/template.js
,
pero esto eliminará el archivo
).
Antecedentes
La razón por la que
.gitignore
no se usa de manera proactiva es porque a veces es posible que desee anular el
.gitignore
.
Digamos, por ejemplo, que no desea rastrear archivos
*.log
, puede especificar
*.log
en
.gitignore
.
Pero si hay uno específico que desea rastrear, puede agregar
git add -f some.log
.
La bandera
-f
obliga a
git
a agregar el archivo.
Estoy tratando de usar el archivo
.gitignore
para excluir
templates.js
ubicado en
public/app/
folder.
Mi archivo
.gitignore
ve así:
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
Pero cuando reviso el Git Gui, el archivo
templates.js
todavía se muestra en él.
¿Cómo puedo excluir específicamente un archivo usando
.gitignore
?
En este caso, puede detener el seguimiento de
templates.js
con
git rm --cached public/app/templates.js
Como otros han explicado,
.gitignore
solo ignora el contenido que se agregará.
Por ejemplo, si usa
git add .
frecuencia
git add .
y tenga
templates.js
en su
.gitignore
, entonces git no lo agregará.
Si ya está rastreando un archivo (
git add
on y
git commit
),
.gitignore
no lo ayudará.
Creo que lo que quieres es dejar de rastrear un archivo y
luego
usar
.gitignore
para excluirlo.
Para dejar de rastrear un archivo pero conservar el archivo, use:
git rm --cached <file>
Una vez que un archivo ha sido ''agregado'' al repositorio de git una vez, continuará siendo rastreado independientemente de si está o no en la lista del archivo .gitignore.
Supongo que agregó el archivo template.js anteriormente, en cuyo caso continuará teniendo cambios rastreados, 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 git (línea de comando) sin eliminarlo es
git rm --cached FILENAME
Luego, una vez que haga eso e intente comprometerse con el archivo en su gitignore, no lo hará.
Tenga en cuenta que si agrega específicamente un archivo que tiene en su gitignore, la adición manual del archivo anulará el gitignore.