Задача: в конце дня нужно фиксировать все изменения в локальном git репозитории (git commit) и отправлять их во внешний репозиторий (git push). Вручную делать это во-первых отностительно долго, во-вторых просто забывается о необходимости сделать очередной git push.
Тогда я задумался можно ли автоматизировать процесс фиксации изменения и их отправки в удаленный репозиторий. Я был приятно удивлен тем, насколько просто это делается через Планировщик заданий и bat скрипт.
Спасибо ChatGpt за помощь в решении этой задачи.
Ниже описаны шаги по реализации.
Шаг 1: Создать bat скрипт
Пример содержимого скрипта:
@echo off
setlocal
:: Переход в директорию с репозиторием
cd /d C:\path\to\your\git\repository
:: Добавление всех изменений в коммит
git add .
:: Создание коммита с сообщением "update"
git commit -m "update"
:: Выполнение git push
git push origin master
endlocal
Замените C:\path\to\your\git\repository
на путь к вашему локальному репозиторию.
Замените origin master
на соответствующую удаленную ветку, если нужно.
Сохраните файл с расширением .bat, например, auto_push.bat.
Шаг 2: Создание задачи в Планировщике заданий
1. Откройте Планировщик заданий: Нажмите Win + R
, введите taskschd.msc, и нажмите Enter
.
2. Создайте новую задачу: В меню Действия выберите Создать задачу.
3. Заполните вкладку "Общие":
- Введите имя задачи, например: "Git Auto Push".
- Выберите, что задача должна выполняться с наивысшими правами.
4. Настройте триггер:
- Перейдите на вкладку Триггеры.
- Нажмите Создать и выберите расписание (например, ежедневно в 16:00).
- Настройте повторение, если необходимо.
5. Настройте действие:
- Перейдите на вкладку Действия.
- Нажмите Создать, выберите Запуск программы.
- В поле Программа или сценарий выберите ваш файл auto_push.bat.
6. Завершите создание задачи:
- Нажмите ОК, чтобы сохранить задачу.
Проверка
Для проверки корректной работы задачи, можно запустить её вручную. В Планировщике заданий найдите созданную задачу "Git Auto Push", щелкните по ней правой кнопкой мыши и выберите Запустить.
Убедитесь, что все изменения успешно отправляются в удаленный репозиторий.