¿Cuál es la mejor práctica para manejar información específica del sistema bajo control de versiones?

Soy nuevo en el control de versiones, así que me disculpo si hay una solución bien conocida para esto. Para este problema en particular, estoy usando git, pero tengo curiosidad sobre cómo lidiar con esto para todos los sistemas de control de versiones.

Estoy desarrollando una aplicación web en un servidor de desarrollo. He definido el nombre de ruta absoluto para la aplicación web (no la raíz del documento) en dos lugares. En el servidor de producción, esta ruta es diferente. Estoy confundido acerca de cómo lidiar con esto.

Yo podría:

Reconfigure el servidor de desarrollo para compartir la misma ruta que la producciónEdite las dos ocurrencias cada vez que se actualice la producción.

No me gusta el # 1 porque prefiero mantener la aplicación flexible para cualquier cambio futuro. No me gusta el n. ° 2 porque si comienzo a desarrollar en un segundo servidor de desarrollo con una tercera ruta, tendría que cambiar esto para cada confirmación y actualización.

¿Cuál es la mejor manera de manejar esto? Pensé en:

Usar palabras clave personalizadas y expansión variable (como configurar la propiedad $ PATH $ en las propiedades de control de versión y expandirla en todos los archivos). Git no admite esto porque sería un gran éxito de rendimiento.

Uso de ganchos posteriores a la actualización y de confirmación previa. Posiblemente la solución probable para git, pero cada vez que miraba el estado, informaba que los dos archivos habían cambiado. No muy limpio.

Extraer la ruta de un archivo de configuración fuera del control de versiones. Entonces tendría que tener el archivo de configuración en la misma ubicación en todos los servidores. También podría tener el mismo camino para empezar.

¿Hay una manera fácil de lidiar con esto? ¿Estoy pensando demasiado?