¿Flujo de trabajo ideal para el repository de Git para el proyecto de software y el código del server complementario?

Utilizo Git para administrar el código fuente de mi proyecto (iOS), que he estado haciendo durante un time y funciona muy bien. Sin embargo, ahora estoy empezando a agregar un componente del lado del server, y me gustaría asegurarme de que el código del lado del server se mantenga en el mismo repository, pero separado del código principal, y configurarlo en el server web. para que no se pueda acceder a toda la base de código y el historial. ¿Cuál es el flujo de trabajo ideal de Git para trabajar con las bases de código que están en dos computadoras, una local y una sentada en un server web? (Por cierto, estoy usando Nginx si eso hace alguna diferencia en términos de cómo configurarlo para que la configuration del server oculte los files y el historial de Git).

En cuanto a la primera pregunta, cómo hacer un seguimiento de los lados del cliente y el server de una manera que el lado del server sigue siendo un proyecto independiente. Podría incorporar el código del server como un submodule en el proyecto del cliente.

 ~/client$ git submodule add foo@bar:server.git ~/client$ git commit 

Esto inserta el repository del server, accesible en SSH URL foo@bar:server.git en su proyecto de cliente en el server de subsplit. Una alternativa de submodules son las combinaciones de subtreees.

En cuanto a verificar el código del server en nginx. Cree un repository vacío en algún lugar del server, digamos /var/git/server.git, y configure su tree de trabajo en / var / www / server /

 cd /var/git mkdir server.git && cd server.git git init --bare git config --bool core.bare false git config --path core.worktree /var/www/server/ 

Configure su gancho posterior a la recepción para ver el tree de trabajo en el nuevo HEAD.

 echo '#!/bin/sh' > hooks/post-receive echo 'git reset --hard HEAD' >> hooks/post-receive 

Configure un control remoto en su desarrollo que apunte a lo anterior:

 client/server$ git remote add www root@bar:/var/git/server.git client/server$ git push www master 

O algo así…