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.

¿Fue útil?

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 addEd 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 (no git 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

content filter driver

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top