プロジェクトの変更を毎週gitにコミットするcronジョブを作成する方法


8

私は、プロジェクトに加えられた変更の履歴を記録する目的でgitを使用しています。それは理想的な使用法ではないことは理解していますが、簡潔にするために説明しないさまざまな理由で選択した使用法のパターンです。

リポジトリへの変更を毎日または毎週コミットするcronジョブをどのように作成しますか?

Ubuntu 10.10で最新バージョンのgitを使用しています。

回答:


9
0 20 * * 0 /path_to_script

これにより、指定されたコマンド(replace /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

サーバーへのプッシュを行うにはどうすればよいですか?
Jason

また、追加したファイルを追加する方法
Jason

スクリプトにgit-pushを追加するだけで、サーバーにもプッシュされます。-aオプションを使用してgit-commitを実行すると、変更または削除されたすべてのファイルが自動的に追加されます。
jcrawfordor

1
-acommitコマンドにaを追加したくないので、すでに追跡されているすべてのファイルがステージング領域に自動的に追加されますか?
Dror

2

実行crontab -eしてユーザーのcronjobを編集し、次の行を挿入します。

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

もちろん、動作中のリモートリポジトリを含むGITリポジトリをセットアップする必要がありますが、それはこの質問の範囲外です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.