script bash a git pull

Entonces tengo varias carpetas para una list de subdominios. Cada carpeta contiene el mismo script que adivina dinámicamente el host y carga varias configuraciones.

Así que la list está creciendo y el cd de cada carpeta se está volviendo aburrido.

El service de alojamiento de mi cliente es limitado y no puedo agregar una key ssh al host para que la extracción sea "sin contraseña", por lo que realizo la extracción a través de HTTPS.

No soy un experto en bash, pero el ciclo básico sería:

for dir in /tmp/*/ do #passwordless pulls done 

Ahora aquí está el truco, algunas carpetas necesitan desarrollarse y otras extraer la twig maestra.

 while read repo remote branch rest; do ( cd $repo git pull $remote $branch # do whatever with $rest ) 2>&1 | sed "s#^#$repo: #" & done <<EOD /path/to/repo origin branch1 /path/to/another github master EOD 

O puede colocar las cosas en un file y </path/to/file lugar de marcarlas después de <<EOD .

Esto disparará todos los tirones en paralelo, si tienes muchos de ellos quizás sería mejor replace el & al final con un ; (o, lo que es equivalente, quítelo).

 DEVLIST="list of hosts that pull develop" MASTERLIST="list of hosts that pull master" for D in ${DEVLIST} do cd /tmp/${D} git clone https://my.repo.edu/git/repo.git -b develop --single-branch done for M in ${MASTERLIST} do cd /tmp/${M} git clone https://my.repo.edu/git/repo.git -b master --single-branch done