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

5038
Jason

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

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

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

8

2 ответа на вопрос

9
jcrawfordor
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 (ссылаясь на нее по полному пути, а не по использованию ~).

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

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

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

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