.Gitignore no ignora los archivos
-
23-10-2019 - |
Pregunta
Mi .gitignore El archivo se ignora y los archivos que deben ignorarse aún son visibles.
user@host ~/workdir % git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .htaccess
# modified: application/controllers/statistics.php
#
no changes added to commit (use "git add" and/or "git commit -a")
user@host ~/workdir % cat .gitignore
.htaccess
application/config/config.php
application/config/database.php
user@host ~/workdir %
Los archivos están en control de versiones, pero con cambios sensatos no quiero presionar. git rm ... no es una opción porque los archivos deben estar en el control de la versión (con otras configuraciones en los archivos). Simplemente no quiero impulsar mis cambios en estos archivos.
Solución
Ignorar archivos en git no significa que no empujar a ellos. Significa que no control de versiones a ellos. Si no desea presionar, le sugiero que cree una rama local que contenga cosas para la máquina local y luego fusione los cambios necesarios en una rama que empujará a remotamente.
Creo que ya tienes add
Ed sus archivos y ahora están tratando de ignorarlos.
Otros consejos
Tenía el mismo problema: quería un archivo .htaccess diferente por repositorio de lo que no pude porque el archivo htaccess ya se había agregado al repositorio. Está funcionando ahora, puedo cambiar cualquiera de los archivos .htaccess de cualquier versión sin que Git los presione. Marc tiene razón cuando dice "Debes eliminarlo primero, antes de que se pueda ignorar. Esto se puede hacer usando Git RM".
Procedí en este orden:
- Haga una copia de seguridad de su archivo .htaccess en algún lugar
- eliminar el archivo .htaccess usando git rm .htaccess
- cometer este cambio (.htaccess deleción)
- Push It (Git Push)
Esto obviamente eliminará su archivo .htaccess
- luego edite .gitignore y agregue /.htaccess
- Comprometerse y luego empújalo
- Recree su archivo .htaccess restaurando su copia de seguridad anterior
Luego, ya ha terminado: los cambios que realices en .htaccess ya no se empujará. La parte difícil es seguir los pasos orden ...
Espero que esto esté claro
después Los pasos de Anybug se notaron aquí Mi git todavía hacía un seguimiento de .htaccess y esto ayudó:
git update-index --assume-unchanged .htaccess
Para volver:
git update-index --no-assume-unchanged .htaccess
Como quieres:
- mantener
.htaccess
en el repositorio de git (nogit rm
) - tener local datos confidenciales en él
utilizar una controlador de filtro que lo hará:
- Durante la fase de pago, complete el
.htaccess
con datos privados - Durante la fase de confirmación, limpie el
.htaccess
De todos los datos confidenciales
Luego puede versión de un archivo encriptado que su script de smudes:
- ser el único en descifrar
- Use para completar el archivo clásico (y empujado/sacado) .htaccess.
Puede la versión que encriptó datos sensibles en una rama especial que no presionará.
Incluso si presionó ese archivo de alguna manera, el daño sería limitado, ya que solo su estación de trabajo tiene la clave privada necesaria para descifrar dicho archivo.
Supongamos que lo siguiente es el contenido de .gitignore
expediente. Aquí, .htaccess
está en el directorio raíz del proyecto.
/.htaccess
application/config/config.php
application/config/database.php
Ejecutemos el siguiente comando para ignorar el .htaccess
, config.php
y database.php
archivos.
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged .htaccess
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/config.php
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/database.php
Si quieres comenzar a rastrearlo de nuevo:
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged path/to/file
p.ej
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged .htaccess
Parece que el .htaccess
El archivo ya se ha agregado al control de versiones. Debe eliminarlo primero, antes de que pueda ser ignorado. Esto se puede hacer usando git rm
Hago esto todo el tiempo. Comienzo con archivos de configuración en mi repositorio y luego decido que no los quiero allí.
Puede eliminar algo de su repositorio usando
git rm --cached <<filename>>
Este me molestó durante días. los .htaccess
El archivo ya está bajo el control de versiones y ha sido modificado.