Pregunta

Estoy tratando de configurar un patrón de desarrollo decente con mi amigo. El plan es que hacemos un desarrollo independiente en nuestras propias computadoras, luego empujamos al servidor Dev para que se pruebe, y luego empujamos desde el servidor Dev al servidor productivo (Heroku).

El problema es que no puedo hacer que Git se comporte. Tal vez simplemente no sé lo suficiente como para entender fundamentalmente lo que está sucediendo. He configurado el repositorio en el servidor de desarrollo, pero cuando lo clono a mi computadora personal, no puedo "retroceder" porque se queja de presionar a un repositorio que no es de atención. Entonces, intenté ramificar los repositorios y empujar ramas, pero ahora tengo muchas declaraciones rápidas, y no creo que las quiera tampoco.

Así que mi pregunta es esta. ¿Cómo configuro el servidor para que todo "funcione"? El servidor no puede ser un repositorio desnudo, debe tener el código para que podamos probar la aplicación. Queremos poder empujar y sacar del repositorio a nuestras propias computadoras de desarrollo sin problemas. Y el servidor debe poder empujar a Heroku (ya puede hacer esto). Esto está en mi propio servidor, por lo que tengo acceso completo a lo que necesite para que esto funcione. (Ubuntu Server Edition 11.04).

¡Gracias!

¿Fue útil?

Solución

La razón por la que no puede llevar a un repositorio que no es de compra de manera predeterminada es que un repositorio que no sea de la atención tiene una copia de trabajo verificada asociada con él. Cuando presiona actualizaciones a la rama que se revisa, la copia de trabajo no se sincroniza con su propio repositorio, a menos que ejecute específicamente un comando para actualizarla (que puede hacer utilizando un gancho posterior a la recuperación). Si eres consciente de esto y te gustaría empujar a un repositorio que no es de horce de todos modos, puede establecer el receive.denyCurrentBranch Propiedad de configuración a ignore y Git permitirá los empujes. Para más detalles lo remito a un entrada en el blog Escribí hace algún tiempo (probablemente debido a una actualización) que describe una configuración similar que uso para mi propio sitio web.

Tenga en cuenta que en lugar de solo los servidores de desarrollo y producción (cada uno con sus propios repositorios no de la zona) también tengo un tercer repositorio, uno desnudo, que presiono primero, antes de enviarlos a desarrollo; De esa manera, solo estoy presionando al servidor de desarrollo desde un lugar, lo que ayuda a mantener las cosas sincronizadas.

Otros consejos

Para exponer el comentario de @David Zaslavsky, establecería un repositorio desnudo para empujar a la mayor parte del tiempo, luego usar algo como git-deploy para presionar a su servidor de desarrollo. Obtienes la misma semántica que presionando a Heroku, sin Heroku.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top