¿Cómo configurar git para múltiples proyectos?

Tengo varios proyectos en varios dominios y tengo cada file de proyecto de dominio en una carpeta como tal.

domain1 -> web-domain1 domain2 -> web-domain2 

Cada dominio se envía a una count de count de control de versiones (github) y a una count de alojamiento (heroku).

todas las carpetas de dominio están contenidas en una sola raíz de carpeta

 root 

¿Cómo debo configurar git para que pueda impulsar cada proyecto mientras trabajo en él? ¿Debo hacer un git init en cada proyecto web?

¿O es posible tener solo un git init para que tenga solo un solo repository git localmente, pero puedo configurarlo para que haga los detalles?

Por detalles, me refiero a enviar solo files relacionados al proyecto al proveedor de host / dominio correcto.

¿Debo hacer un git init en cada proyecto web?

En resumen, sí.

Git, GitHub y Heroku están orientados a manejar un único proyecto en cualquier momento. Si sus proyectos A, B y C son independientes el uno del otro, cada uno necesita su propio repository localmente y en GitHub, y su propia aplicación Heroku para enviar.

Si desea mantener su control de fuente en un gran repository principal, posiblemente podría configurar un único repository de Git en la root/ que envíe a GitHub, y luego repositorys de Git independientes dentro de cada directory de aplicaciones que envíe a Heroku. Esto funciona porque Git busca primero el directory .git/ en su directory actual y luego hacia arriba a través de los padres del directory, por lo que cuando se encuentre en una carpeta de proyecto, se comprometerá con la aplicación local para enviar posts a Heroku y cuando Estás en la root/ , harías commits para empujar hacia arriba a GitHub. Sin embargo, te darás count con este esquema de que cada vez que quieras comprometerte, debes hacerlo dos veces: una para Heroku y otra para GitHub. Apostaría que rápidamente se vuelve irritante.

Podría usar este script de shell para administrar múltiples repositorys git.

puede ejecutar git clone https://github.com/robbenz/gitme.git para echar un vistazo. Lo publicaré a continuación también.

abra la secuencia de commands en su editor de text e ingrese las routes de files de sus diferentes proyectos de git.

gitme un alias en mi ~/.bash_profile llamado gitme para ejecutar este script y luego puede ejecutar un git status git push o git push o git pull en todos sus proyectos de git a la vez. los proyectos se pueden combinar con un post de compromiso único o genérico

 #!/bin/bash -e # enter in your different git projects REPOS=( /Users/you/repo1 /Users/you/repo2 /Users/you/repo3 /Users/you/repo4 ) MOVE="Moving to next REPO... \n" tput setaf 2;echo "What do ya wanna do? You can say push, pull, commit, ftp push, or status"; tput sgr0 read input if [ $input = "commit" ] then tput setaf 2;echo "Do you want a unique commit message? [y/n]";tput sgr0 read ans if [ $ans = "y" ] then for i in "${REPOS[@]}" do cd "$i" tput setaf 6;pwd;tput sgr0 git add . -A read -p "Commit description: " desc git commit -m "$desc" tput setaf 2;echo $MOVE;tput sgr0 sleep 1 done else for i in "${REPOS[@]}" do cd "$i" tput setaf 6;pwd;tput sgr0 git add . -A git commit -m "autocommit backup point" tput setaf 2;echo $MOVE;tput sgr0 sleep 1 done fi elif [ $input = "push" ] || [ $input = "pull" ] || [ $input = "ftp push" ] || [ $input = "status" ] then for i in "${REPOS[@]}" do cd "$i" tput setaf 6;pwd;tput sgr0 git $input tput setaf 2;echo $MOVE;tput sgr0 sleep 1 done else tput setaf 1;echo "Sorry, thats not on the list";tput sgr0 fi