Reparación del deployment de los raíles Github

Solo estoy conociendo el deployment de los raíles, así que perdónenme si esta pregunta suena tonta. He (en mi máquina local) he creado una aplicación de Rails, la he capitulado, he iniciado git, la he insertado (origen -> maestro en un repository privado) y luego la he clonado en un VPS. Sin embargo, después tuve que modificar varios files en el server debido a las peculiaridades del server y ahora los repos no coinciden. Quiero comenzar a trabajar con Capistrano, pero tal como está, no puedo hacer nada (ni siquiera me puse al día con los cambios en mi máquina local). Entonces, tengo varias preguntas.

a) ¿Cuál es la mejor manera de continuar con esto? ¿Puedo eliminar el repository github, luego crear otro presionando desde el SPV y clonarlo en mi máquina local? Si es así, ¿debo 'degit' (eliminar la carpeta .git) el repository en un server primero? ¿O es la mejor manera de copyr el directory de la aplicación a la máquina local y luego volver a pasar por todo esto?

b) En lo que a mí respecta, el único file que tiene que ser diferente entre el server y la máquina de desarrollo es el file database.yml, ¿tengo que agregarlo a .gitignore? En caso afirmativo, se eliminará el siguiente vez que retiro los cambios del maestro?

c) Si (al principio) lo presiono a github desde el SPV como origen, ¿podré cambiar el rol luego, para que cambie cada vez que presiono cambios al maestro desde mi máquina local?

d) ¿Tiene sentido usar Capistrano si hay otra forma de extraer los cambios automáticamente (he escuchado que algunas personas están usando de alguna manera los ganchos de confirmación)? Porque en este momento solo quiero mantener la carpeta de la aplicación en el VPS actualizada con lo que está en github y el file de cap y deploy.rb parecen ofrecer demasiadas opciones. No es elegante en lo más mínimo.

Gracias por su atención, tenga un buen día. Atentamente, Eugene.

a), ¿no puede get el diff combinado como un file diff y aplicarlo al código local? ¿O simplemente comprometerse desde allí? Entonces, tendrá los cambios en el repository github. (ignore los cambios que exponen la información privada, use git add -p en los files críticos)

para b), el file database.yml ya está configurado para tener diferentes configuraciones por entorno (desarrollo / producción). Si necesita algo más, puede leer variables de entorno (configurándolas en la máquina de producción) utilizando ERB:

No se puede acceder a las variables de entorno dentro del file `database.yml`

Por otro lado, si agrega database.yml a los files ignorados, necesitará alguna otra forma de generarlo.

c) no tiene sentido para mí. El repo del VPS tendrá un control remoto pnetworkingeterminado configurado, y su repository local también, puede empujar, tirar y search desde donde desee.

d) Capistrano es lo suficientemente bueno, tenga en count que no sobrecargar la configuration con muchos ganchos, etc., puede ser difícil de administrar. Desplegar a través de capistrano es cuestión de segundos, no me preocuparía.