usar - gitignore not ignoring file
.gitignore no ignora los archivos (8)
Como quieres:
- mantener
.htaccess
en el repositorio de Git (nogit rm
) - tener datos locales sensibles en ella
use un controlador de filtro que:
- 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 versionar un archivo encriptado que su script de manchas:
- ser el único para descifrar
- utilizar para completar el archivo .htaccess clásico (y empujado / jalado).
Puede versionar los datos sensibles cifrados en una rama especial que no va a insertar.
Incluso si presionara 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.
Mi archivo .gitignore se ignora y los archivos que deben ignorarse siguen siendo 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 el control de versión, pero con cambios razonables no quiero presionar. git rm ... no es una opción porque los archivos deben estar en el controlador de versión (con otras configuraciones en los archivos). Simplemente no quiero empujar mis cambios en estos archivos.
Este me molestó durante días. El archivo .htaccess
ya está bajo el control de versiones y se ha modificado.
Hago esto todo el tiempo. Comienzo con los archivos de configuración en mi repositorio y luego decido que no los quiero allí.
Puedes eliminar algo de tu repositorio usando
git rm --cached <<filename>>
Ignorar archivos en git no significa que no los empujes . Significa que no controlarás la versión . Si no desea impulsar, sugiero que cree una rama local que contenga elementos para la máquina local y luego fusione los cambios necesarios en una rama que empujará a remoto.
Creo que ya has add
tus archivos y ahora estás intentando ignorarlos.
Parece que el archivo .htaccess
ya se ha agregado al control de versión. Es necesario eliminarlo primero, antes de que pueda ser ignorado. Esto se puede hacer usando git rm
Supongamos que lo siguiente es el contenido del archivo .gitignore
. 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 los archivos .htaccess
, config.php
y database.php
.
[email protected]:work-dir$ git update-index --assume-unchanged .htaccess
[email protected]:work-dir$ git update-index --assume-unchanged application/config/config.php
[email protected]:work-dir$ git update-index --assume-unchanged application/config/database.php
Si quieres empezar a rastrearlo de nuevo:
[email protected]:work-dir$ git update-index --no-assume-unchanged path/to/file
p.ej
[email protected]:work-dir$ git update-index --no-assume-unchanged .htaccess
Tuve el mismo problema: quería un archivo .htaccess diferente por repositorio, entonces no pude porque el archivo htaccess ya se había agregado al repositorio. Está funcionando ahora, puedo cambiar cualquiera de los archivos .htaccess desde cualquier versión sin que git los presione. Marc tiene razón cuando dice "primero debes eliminarlo, antes de que se pueda ignorar. Esto se puede hacer usando git rm".
procedí en este orden:
- copia de seguridad de su archivo .htaccess en alguna parte
- eliminar el archivo .htaccess utilizando git rm .htaccess
- cometer este cambio (eliminación de .htaccess)
- empujar (git empujar)
esto obviamente eliminará su archivo .htaccess
- luego edita .gitignore y agrega /.htaccess
- cometer luego empujarlo
- vuelva a crear su archivo .htaccess restaurando su copia de seguridad anterior
entonces ya está listo: cualquier cambio que realice en .htaccess no se enviará más. La parte difícil es seguir los pasos de orden ...
espero que esto esté claro
después de los pasos de anybug anotados aquí, mi git aún seguía el rastro de .htaccess y esto ayudó:
git update-index --assume-unchanged .htaccess
Para volver atrás:
git update-index --no-assume-unchanged .htaccess