如何创建Cron作业,每周将我的项目更改提交给git


8

我使用git是为了对我的项目所做的更改进行历史记录。我了解这不是理想的用法,但这是我出于各种原因而选择的用法模式,为了简洁起见,我将不再赘述。

如何创建cron作业,每天或每周将更改提交到存储库?

我在Ubuntu 10.10上使用最新版本的git。

Answers:


9
0 20 * * 0 /path_to_script

这将/path_to_script'在每个星期日的当地时间20:00 运行指定的命令(替换)。cron作业的语法非常简单,并且有一个巧妙的工具可以帮助您创建它们而无需记住代码位置。

在这种情况下,命令应该是为您运行提交的脚本。我认为在您的情况下,编写快速的Shell脚本以更改到克隆目录然后运行提交将是最简单的。在创建一个文件,~/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作业运行该文件(通过完整路径引用它,而不是使用~)。


好答案。请记住,仅当计算机在指定时间(例如,星期日20:00)运行时,cronjob(显然)才会执行。
pableu

我如何使它也可以推送到服务器?
杰森

此外,我如何使其添加已添加的文件
Jason

只需将git-push添加到脚本中,即可将其也推送到服务器。您可以使用-a选项进行git-commit,使其自动添加所有已修改或删除的文件。
jcrawfordor 2011年

1
您是否不想-a在commit命令中添加a ,这样它将自动添加所有已被跟踪到暂存区的文件?
Dror

2

运行crontab -e以编辑您的用户cronjob,并插入以下行:

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

当然,您将必须设置您的GIT存储库,包括可以使用的远程存储库,但这不在此问题范围内。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.