La utilidad mr
(alias, myrepos
) proporciona una solución excepcional a este mismo problema. Instálelo utilizando su administrador de paquetes favorito, o simplemente tome el script mr
directly from github y póngalo en $HOME/bin
o en otro lugar en su PATH
. Entonces, cd
a la carpeta principal plugins
compartida por estos repos y crear un archivo básico .mrconfig
con contenidos similares a los siguientes (ajuste de las direcciones URL según sea necesario):
# File: .mrconfig
[cms]
checkout = git clone 'https://<username>@github.com/<username>/cms' 'cms'
[admin]
checkout = git clone 'https://<username>@github.com/<username>/admin' 'admin'
[chart]
checkout = git clone 'https://<username>@github.com/<username>/chart' 'chart'
Después de eso, puede ejecutar mr up
desde el nivel superior plugins
carpeta para extraer actualizaciones de cada repositorio. (Tenga en cuenta que esto también hará la copia inicial si la copia de trabajo objetivo aún no existe.) Otros comandos que puede ejecutar incluyen mr st
, mr push
, mr log
, mr diff
, etc., ejecute mr help
para ver qué es posible. Hay un comando mr run
que actúa como paso a través, lo que le permite acceder a los comandos de VCS que no son directamente compatibles con mr
(por ejemplo, mr run git tag STAGING_081220015
). ¡Incluso puede crear sus propios comandos personalizados que ejecutan bits arbitrarios de script de shell dirigidos a todos los repositorios!
mr
es una herramienta extremadamente útil para tratar múltiples repositorios. Dado que la carpeta plugins
está en su directorio de inicio, también podría estar interesado en vcsh
. Junto con mr
, proporciona un poderoso mecanismo para administrar todos de sus archivos de configuración. Consulte esto blog post por Thomas Ferris Nicolaisen para una descripción general.
Qué le pasa a 'find -name .git -execdir git pull \; '? – jthill
¿Qué pasa con 'git do pull' –
La misma pregunta [respondida] (https://stackoverflow.com/a/48790388/2192488) para' hg mercurial'. –