How do I create a cron job that will commit my project changes to git on a weekly basis

9,519

Solution 1

0 20 * * 0 /path_to_script

That will run the command specified (replace /path_to_script') at 20:00 local time every Sunday. The syntax for cron jobs is fairly simple, and there's a slick tool that will help you create them without remembering the code positions.

In this case, the command should be a script that runs the commit for you. I think it would be easiest in your case to write a quick shell script to change to the clone directory and then run the commit. Create a file at ~/commit.sh and put this in it (replacing /location/of/clone, of course)


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

Then chmod +x ~/commit.sh to make it executable, and have the cron job run that (referring to it by it's full path, rather than using ~).

Solution 2

Run crontab -e to edit your user cronjob, and insert this line:

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

Of course you will have to setup your GIT repo including a working remote repository, but that's not in scope of this question.

Share:
9,519

Related videos on Youtube

Jason
Author by

Jason

Updated on September 18, 2022

Comments

  • Jason
    Jason over 1 year

    I'm using git for the purposes of making a historical transcript of the changes made to my project. I understand it's not the ideal usage but it's the usage pattern I've chosen for various reasons which I won't get into for the sake of brevity.

    How would I create a cron job that would commit the changes to the repository each day or week?

    I'm using the latest version of git on Ubuntu 10.10.

  • Navaneethan Arun
    Navaneethan Arun about 13 years
    Good answer. Keep in mind that the cronjob (obviously) only gets executed if your computer is running at the specified time (e.g. Sunday 20:00).
  • Jason
    Jason about 13 years
    how can i make it do the push to the server as well?
  • jcrawfordor
    jcrawfordor about 13 years
    Just add git-push to the script to have it push to the server as well. You can use the -a option to git-commit to have it automatically add all files that have been modified or deleted.
  • Dror
    Dror over 11 years
    Don't you want to add a -a to the commit command, so it will add automatically all the files that are already tracked to the staging area?
  • Elijah Lynn
    Elijah Lynn almost 9 years
    Yeah, this won't do anything without the -a. In addition it won't even do the commit because it is git-commit. I am going to fix it.