Git: Как автоматически обновлять мою локальную ветвь, когда происходит изменение в удаленной ветке отслеживания?

Я хочу запустить что-то в фоновом режиме, в основном, git pull --rebase, когда происходят некоторые изменения в моей удаленной ветке. Большую часть времени он работает тихо в фоновом режиме, если нет конфликтов. В случае конфликта он просто оставляет меня на этапе урегулирования конфликта-решения и до тех пор, пока я не разрешу все, что ждет. Как мне это сделать? Есть ли уже существующее программное обеспечение, которое уже делает это?

Ответ 1

Если у вас нет контроля над удаленным репозиторием, одним из решений является использование crontab для периодического запуска git fetch или, возможно, даже git pull --rebase, как вы предлагаете. Точная команда на выбор зависит от вашего рабочего процесса, лично я предпочитаю использовать git fetch, потому что я могу решить, когда и как слить или переустановить.

Чтобы запустить команду, выполните следующую команду:

crontab -e

И добавьте строку, например:

* * * * * git -C PATH_TO_LOCAL_REPO fetch

или

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

Это будет запускать команду git каждую минуту с вашими разрешениями пользователя.

Если вы хотите применить команду git в списке репозитория, вы можете добавить строку:

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

где git -refresh - это script, которые применяются ко всем вашим репозиториям.

Параметр -C позволяет запустить команду git без изменения каталога. На странице :

-C <path>

Запуск, как если бы вместо текущего рабочего каталога был запущен git.

Ответ 2

Этот процесс называется синхронизацией fork

Синхронизировать вилку репозитория, чтобы поддерживать ее в актуальном состоянии в восходящем репозитории. К сожалению, у GitHub нет функции автоматической синхронизации. Но, тривиально добавлять в качестве задания cron на сервере, чтобы вам не пришлось делать это вручную. Например:

cd/srv/mirrorrepo; git fetch ведущий ведущий; git нажмите начало оригинала

Следующий плагин может помочь

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