Як створити роботу cron, яка здійснюватиме зміни в моєму проекті на git щотижня


8

Я використовую git для створення історичної стенограми змін, внесених до мого проекту. Я розумію, що це не ідеальне використання, але це обрана схема, яку я вибрав з різних причин, в які я не потрапляю заради стислості.

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

Я використовую останню версію git на Ubuntu 10.10.

Відповіді:


9
0 20 * * 0 /path_to_script

Це запустить вказану команду (замінить /path_to_script') команду о 20:00 за місцевим часом щонеділі. Синтаксис для cron завдань досить простий, і є гладкий інструмент, який допоможе вам створити їх, не запам'ятовуючи позиції коду.

У цьому випадку команда повинна бути сценарієм, який виконує команду для вас. Я думаю, що у вашому випадку було б найпростіше написати швидкий скрипт оболонки для зміни в каталог клонів, а потім виконати команду. Створіть файл у ~/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

як я можу змусити його також натиснути на сервер?
Джейсон

Крім того, як змусити його додавати файли, які я додав
Джейсон

Просто додайте git-push до скрипту, щоб він також був натиснутий на сервер. Ви можете скористатися параметром -a для git-commit, щоб він автоматично додавав усі файли, які були змінені або видалені.
jcrawfordor

1
Ви не хочете додати -aкоманду "фіксація", тож вона автоматично додасть усі файли, які вже відслідковуються, в область постановки?
Dror

2

Запустіть, crontab -eщоб змінити cronjob користувача та вставити цей рядок:

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

Звичайно, вам доведеться налаштувати своє GIT-репо, включаючи робоче віддалене сховище, але це не стосується цього питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.