Git: ¿Cómo actualizar automáticamente mi sucursal local cuando ocurre un cambio en la sucursal de seguimiento remoto?

Quiero ejecutar algo en segundo plano, que básicamente hace un git pull --rebase cada vez que suceden algunos cambios en mi remota twig. La mayoría de las veces funciona silenciosamente en segundo plano si no hay conflictos. En caso de conflicto, simplemente me deja en la etapa de rebase-resolver-conflicto y hasta que resuelvo todo lo que espera. ¿Cómo hago esto? ¿Hay un software existente que ya lo haga?

Solutions Collecting From Web of "Git: ¿Cómo actualizar automáticamente mi sucursal local cuando ocurre un cambio en la sucursal de seguimiento remoto?"

Si no tienes control en el repository remoto, una solución es usar crontab para ejecutar periódicamente git fetch o incluso un git pull --rebase como propones. El command exacto para elegir depende de tu flujo de trabajo, personalmente prefiero usar una git fetch porque puedo decidir cuándo y cómo fusionar o volver a establecer la base.

Para ejecutar el command ejecute periódicamente:

 crontab -e 

Y agrega una línea como:

 * * * * * git -C PATH_TO_LOCAL_REPO fetch 

o

 * * * * * git -C PATH_TO_LOCAL_REPO pull --rebase 

Esto ejecutará el command git cada minutos con tus permissions de usuario.

Si desea aplicar el command git en una list de repository, puede agregar la línea:

 * * * * * /home/myself/scripts/git-refresh.sh 

donde git-refresh es un script que se aplica a todos tus repositorys.

La opción -C permite ejecutar un command git sin cambiar el directory. Desde la página man :

-C <path>

Ejecutar como si git se inició en lugar del directory de trabajo actual.

Este process llamado como Sincronización de un tenedor

Sincronice una bifurcación de un repository para mantenerlo actualizado con el depósito ascendente. Lamentablemente, GitHub no tiene ninguna function de synchronization automática. Sin embargo, es trivial agregarlo como tarea cron en un server para que no tenga que hacerlo manualmente. Por ejemplo:

cd / srv / mirrorrepo; git fetch upstream master; git push origin master

El siguiente complemento podría ayudar

https://github.com/trilbymedia/grav-plugin-git-sync