Gitignore, ¿el file se elimina en la extracción inicial y cuando se encuentra diferente?

Quiero que git ignore application.ini , así que agregué .gitignore

 /application/configs/application.ini 

El problema es que no .gitgignore el .gitgignore antes que todo, lo .gitgignore después. Entonces leo aquí: Github gitignore ayuda que puedes usar:

 git rm --cached application.ini 

Después del hecho. Así que envié el cambio junto con todos los demás miembros del equipo, se mostró que application.ini se eliminó y se envió al repository. Después de tirar, se eliminó el file application.ini .

Entonces me di count de que git no está rastreando, así que deberíamos agregar nuestra propia applciation.ini y toda la configuration se mantendrá localmente y no se comprometerá.

El problema es que cuando revisé una confirmación desde hace un time, y luego volví a master: application.ini se eliminó de nuevo.

Tal vez estoy haciendo algo mal, o simplemente no sobrepaso los conceptos /

El problema es que cometió la eliminación del file . Como tal, cuando cambia de una revisión que rastrea el file a una revisión que no rastrea el file, Git realizará esta eliminación y usted terminará sin el file.

En el reverso, cuando cambias de una revisión que no rastrea el file a una revisión que sí lo hace, Git agregará el file de esa revisión . Y si vuelves, se eliminará nuevamente.

Por lo tanto, si desea mantener el file sin seguimiento, mientras sigue trabajando con las revisiones anteriores, tiene que restaurar el file usted mismo por desgracia.

Por cierto. el enfoque habitual para dichos files de configuration es rastrear algún file application.example.ini que muestre la configuration de ejemplo pero no se use. El usuario puede copyr eso y cambiar el nombre de la copy a application.ini para tener una configuration local que no es parte del repository. O bien, tiene un file de configuration pnetworkingeterminado y, además, una configuration de usuario (sin seguimiento) (ambos cargados en la aplicación), por ejemplo, application.user.ini .

† Tenga en count que Git solo le permitirá cambiar a una revisión que agregue el file, si el file no existe actualmente o si el contenido es idéntico al de la revisión de destino. De lo contrario, podría perder datos, por lo que Git no le permitirá hacerlo.

Como ya se ha respondido, el problema es que la eliminación del file es una confirmación, por lo que se aplicaría cuando cambie entre las operaciones de pago.

La confirmación borra el file llamado application.ini para que una solución ingenua sea cambiar el nombre del file y agregar el nuevo file renombrado a .gitignore .

Otra solución es eliminar por completo las references de application.ini del historial de repos. Este procedimiento le permitirá amend la primera confirmación y agregar .gitignore , y luego reescribir todo el historial de git. Puede encontrar el procedimiento en la respuesta aceptada a esta pregunta. Git ignora y cambia el pasado .