(Esta es una respuesta de “modo de supervivencia”, no una respuesta de “diseñar el sistema perfecto”).
Cuando haces un “guardar” en este entorno estás haciendo dos cosas:
- Despliegue a producción
- Grabar una nueva versión del trabajo que hiciste
Acercarse a pasar la prueba de Joel significa separar estos dos.
- ¿Cómo funciona una página web?
- ¿Por qué usamos promesa en los métodos de devolución de llamada en Node.js?
- Cómo mejorar la velocidad de la página web
- Cómo hacer que el menú desplegable le guste el menú de usuario de Quora
- Cómo crear API de descanso en Python e implementar en el servidor de producción
Pero probablemente tengas una fecha límite próxima y no puedas dedicar demasiado tiempo a cosas “meta”, ¿verdad?
Lo primero que haría es automatizar el proceso de “implementar mi directorio de trabajo actual en producción”. Escriba una secuencia de comandos que realice un rsync o sftp o lo que sea para tomar su versión local completa del proyecto y hacer que la versión del servidor sea idéntica a esa. De esa manera, si alguien “pisa” sus cambios, puede cambiarlos. No es muy agradable, pero (1) esto le dará algo de tiempo para mejorar y (2) puede compartir su script de implementación con otros desarrolladores cuando lo necesiten.
Ahora tiene la capacidad de hacer rápidamente que la versión que se ejecuta en producción sea idéntica a la versión que se ejecuta en su sistema de desarrollo. El siguiente paso es hacer lo contrario: tomar lo que se está ejecutando en producción en su directorio de trabajo.
Ahora puede comenzar a usar Git localmente. Comprométase cuando haya realizado una unidad lógica de trabajo. Cuando agarres lo que sea que la gente ha cambiado en el sistema de producción, compromételo. Estás a medio camino.