2011-12-19 19 views
2

5分ごとに発生するリポジトリへの自動保存を実装するローカルGITが私のホームディレクトリです。ローカルGitと自動保存

私は2つの質問があります。

  1. はこれを行うためにまともな事ですか?
  2. linuxのホームディレクトリにある特定のディレクトリセットに対して、この機能を実装するスクリプトを書くにはどうすればよいですか?

目的は、私からの入力なしに自動的に自分のホームディレクトリ内のすべての履歴をすべての重要なファイルをキャプチャすることです。私はこれを私がねじればいつでも使うことができます。

答えて

2

サニティはすべて相対的です!

私はそれがあなたがバックアップしている理由によると思います。ハードウェアに障害がある場合は、リポジトリが同じフォルダ(/ home /)にあるため、フォルダが移動するとリポジトリが移動するため、これは機能しません。もちろん、実際のバックアップとは別のマシンのストレージリポジトリにプッシュしている場合を除きます。

私たちはgitを使って、重要なこと、特に研究論文やPDFを保存するので、簡単に共有できます。

スクリプトを頻繁に実行するcronジョブを作成します。基本的にはgit commit -a -m "commit message"という単純なbashスクリプトを定期的にあなたのフォルダに書きます。厄介なのは、作成された新しいファイルを追跡するためにgit addを実行することです。おそらくgit statusを実行し、スクリプトの出力を解析して新しいファイルを見つけ、そのリストにgit addという名前を付ける必要があります。 Pythonがこれを行う最も簡単な方法かもしれません。それであなたはcron.で登録します

ここにあなたの友人は、cronでスクリプトを登録する方法に関する多くの例があります。

+0

すべてのファイルが自動的に追加されるので、何かを解析する必要はありません... –

+0

(それが必要な場合は、 'git status'ではなく' git ls-files'を使用してください) – Mat

+0

@Igorポポフ詳細な回答ありがとうございます。これは私が探していたものでした。追跡の問題をさらに調査します。 – ewm

2

は、あなたがしたい各ディレクトリを入力し、

git add . 
git commit -m "new change" 
git push 

を実行して、スクリプトを各5分を実行するためにcronを使用するシェルスクリプトを書きます。

+0

リポジトリもローカルの場合、git pushは必要ありません。 –

+0

私は 'git add'とは言いません。これは、盲目的に追跡用のファイルを追加するためです。ちょうど 'コミット-a'と、何か新しいものを追跡する場合は、それを明示的に' add'します。 – wilhelmtell

+0

'git add .'は生成されたファイルもコミットしますが、これは期待されません。 – cppcoder

1

はcronの中で、次の

1) git status --u=no //It gives you the files which are modified 
2) Iterate through the file list from step 1 and do git add <file> 
3) git commit -m "latest change <date:time>" 

スケジュールにこのスクリプトを実行するシェルスクリプトを書きます。

+0

コメントに変更時刻を含めると、時間の経過とともに変更を追跡するのに便利です。ありがとうございました。スクリプトコード作成スキルを試してみる必要があります。 – ewm

関連する問題