Как мне создать работу cron, которая будет фиксировать изменения моего проекта в git еженедельно

8

Я использую git для исторической расшифровки изменений, внесенных в мой проект. Я понимаю, что это не идеальное использование, но это шаблон использования, который я выбрал по разным причинам, но для краткости я не буду его использовать.

Как мне создать задание cron, которое будет фиксировать изменения в хранилище каждый день или неделю?

Я использую последнюю версию git на Ubuntu 10.10.

Джейсон
источник

Ответы:

9
0 20 * * 0 /path_to_script

Это будет запускать указанную команду (заменить /path_to_script') в 20:00 по местному времени каждое воскресенье. Синтаксис для заданий cron довольно прост, и есть удобный инструмент , который поможет вам создать их без запоминания позиций кода.

В этом случае команда должна быть скриптом, который запускает коммит для вас. Я думаю, в вашем случае было бы проще написать быстрый сценарий оболочки, чтобы перейти в каталог clone, а затем запустить коммит. Создайте файл в ~/commit.shи поместите это в него (заменив /location/of/clone, конечно)


#!/bin/sh
cd /location/of/clone
git-commit -m "commit message, to avoid being prompted interactively"

Затем, chmod +x ~/commit.shчтобы сделать его исполняемым, и запустить задание cron (ссылаясь на него по полному пути, а не по использованию ~).

jcrawfordor
источник
Хороший ответ. Имейте в виду, что cronjob (очевидно) выполняется только в том случае, если ваш компьютер работает в указанное время (например, в воскресенье 20:00).
pableu
как я могу заставить его сделать push на сервер?
Джейсон
Кроме того, как мне сделать так, чтобы он добавил файлы, которые я добавил
Джейсон
Просто добавьте git-push в скрипт, чтобы он также передавался на сервер. Вы можете использовать опцию -a для git-commit, чтобы она автоматически добавляла все файлы, которые были изменены или удалены.
jcrawfordor
1
Разве вы не хотите добавить -aкоманду commit, чтобы она автоматически добавляла все файлы, которые уже отслежены, в промежуточную область?
Дрор
2

Запустите, crontab -eчтобы отредактировать ваш пользовательский cronjob, и вставьте эту строку:

0 20 * * 0 (cd /path/to/myproject && git add . && git commit -m "Automatic Commit" && git push)

Конечно, вам придется настроить репозиторий GIT, включая работающий удаленный репозиторий, но это не входит в сферу этого вопроса.

Спикман
источник