Cómo actualizar múltiples repositorios de Git de forma masiva
Cuando tienes muchos repositorios, puede volverse tedioso actualizarlos manualmente uno por uno. Con el método descrito en este artículo, podrás actualizar varios repositorios de Git de forma masiva.
Pasos
- Crea un archivo de script llamado
pull-master.sh
y pega el siguiente código:
pull-master.sh
#!/bin/bash
function showMsg()
{
echo -e "\033[32m$1\033[0m"
}
function getdir(){
for element in `ls $1`
do
dir_or_file=$1"/"$element
if [ -d $dir_or_file ]
then
cd $1"/"$element
showMsg 'git pull '$element
git pull
else
echo $dir_or_file
fi
done
}
root_dir="【to_be_replace[包含多个仓库的路径]】"
getdir $root_dir
- Reemplaza
【to_be_replace[包含多个仓库的路径]】
con tu ruta, por ejemploC:\repos
. - Ejecuta el siguiente comando:
o haz doble clic en pull-master.sh
para ejecutarlo.
Ejecución programada
- Busca y abre el "Programador de tareas".
- Haz clic en "Crear tarea".
- En la pestaña "General", ingresa un nombre para la tarea.
- En la pestaña "Desencadenadores", configura el período de ejecución.
- En la pestaña "Acciones", crea una nueva acción, ingresa el "Programa o script" (por ejemplo,
F:\pull-master.sh
), agrega argumentos (por ejemplo,pull-master.sh
) y establece la "Comenzar en" (por ejemplo,F:\
).
- Prueba la ejecución, si no hay problemas, estará listo. (Si no funciona, puedes consultar Pull-Git-Repo.xml)
Implementación en un NAS de Synology
- Coloca el script (por ejemplo,
github-pull.sh
) en cualquier ubicación de tu NAS. - Modifica la ruta de
root_dir
engithub-pull.sh
a la ubicación donde tienes tus repositorios de Git, por ejemplo"/volume1/projects"
. - Ve a "Panel de control" - "Programador de tareas" - "Crear" - "Tarea programada" - "Script definido por el usuario". Configura el período de ejecución en las pestañas "Programación" y "Configuración de la tarea" y establece el comando para ejecutar el script (por ejemplo,
bash /volume1/stash/permanent/github-pull.sh
). - Puedes configurar la salida en "Configuración" y luego seleccionar la tarea y hacer clic en "Ejecutar" para probar la ejecución y ver los resultados en la ruta de salida configurada.
Si tienes que ingresar la contraseña cada vez, puedes ejecutar el siguiente comando (debes habilitar el directorio de inicio del usuario de antemano):
Esto generará un archivo de texto local que almacenará tu nombre de usuario y contraseña. Cuando se te solicite ingresar la contraseña nuevamente, solo tendrás que hacerlo una vez y no tendrás que volver a ingresarla en el futuro.
Referencias y agradecimientos
Este post está traducido usando ChatGPT, por favor feedback si hay alguna omisión.