How do I create a cron job that will commit my project changes to git on a weekly basis
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.
Related videos on Youtube
Jason
Updated on September 18, 2022Comments
-
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 about 13 yearsGood 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 about 13 yearshow can i make it do the push to the server as well?
-
jcrawfordor about 13 yearsJust 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 over 11 yearsDon'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 almost 9 yearsYeah, this won't do anything without the
-a
. In addition it won't even do the commit because it isgit-commit
. I am going to fix it.