Mucha gente te aconseja usar git update-index --assume-unchanged
. De hecho, esta puede ser una buena solución, pero solo a corto plazo.
Lo que es probable que desee hacer es lo siguiente: git update-index --skip-worktree
.
(La tercera opción, que probablemente no desee es: git rm --cached
mantendrá su archivo local, pero se marcará como eliminado del repositorio remoto).
¿Diferencia entre las dos primeras opciones?
assume-unchanged
es permitirle temporalmente ocultar modificaciones de un archivo. Si desea ocultar las modificaciones realizadas a un archivo, modifique el archivo, luego revise otra rama, tendrá que usarno-assume-unchanged
luego probablemente escondirá las modificaciones realizadas.
skip-worktree
te seguirá, sea cual sea la rama que pagues, ¡con tus modificaciones!
Caso de uso de assume-unchanged
Asume que este archivo no debe modificarse, y le da una salida más limpia al hacerlo git status
. Pero cuando se desprotege en otra rama, debe restablecer el indicador y confirmar o ocultar los cambios antes de hacerlo. Si tira con esta opción activada, deberá resolver conflictos y git no se fusionará automáticamente. En realidad, solo oculta modificaciones ( git status
no le mostrará los archivos marcados).
Me gusta usarlo cuando solo quiero detener el seguimiento de los cambios por un tiempo + confirmar un montón de archivos ( git commit -a
) relacionados con la misma modificación.
Caso de uso de skip-worktree
Tiene una clase de configuración que contiene parámetros (por ejemplo, contraseñas incluidas) que sus amigos deben cambiar de acuerdo con su configuración.
- 1: Cree una primera versión de esta clase, complete los campos que puede completar y deje otros vacíos / nulos.
- 2: Comprometerlo y enviarlo al servidor remoto.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Actualice su clase de configuración con sus propios parámetros.
- 5: Vuelva a trabajar en otra funcionalidad.
Las modificaciones que hagas te seguirán sea cual sea la rama. Advertencia: si sus amigos también quieren modificar esta clase, tienen que tener la misma configuración, de lo contrario, sus modificaciones se enviarían al repositorio remoto. Al tirar, la versión remota del archivo debe sobrescribir la suya.
PD: haz uno u otro, pero no ambos, ya que tendrás efectos secundarios indeseables. Si desea probar con otro indicador, primero debe desactivar el último.
.csproj
archivo, que es una parte muy importante de cualquier proyecto. Cambios en el.csproj.user
archivo o en cualquier.Publish.XML
archivo que entiendo totalmente sin seguimiento, pero estoy intrigado por qué no querría seguir el.csproj
...