現在のリポジトリ内のどこかにある他のリポジトリにファイルとディレクトリを含めるようにgitに強制する方法はありますか?
私が尋ねる理由は、私が次のようなレイアウトを持っているからです。
Projects
|- Some Project
| |- .git
|- Another Project
| |- .git
|- Yet Another Project
| |- .svn
|- A non versioned Project
|- etc..
今私がやりたいのは、プロジェクトでgit init
を実行してから、次のコマンドでバックアップされたフォルダー内のベアリポジトリにプッシュする毎日のcronジョブを実行することです。
...<set variables>...
git add -A
git commit -m "Automatic Update $Date $Time"
git Push --mirror --repo=/backedup/Projects
私の計画は、.git
、.svn
、.hg
などを.gitignore
に追加し、これをファイルの安全バックアップとして使用することでした。
編集:私は以下にいくつかの素晴らしい提案がありますが、この特定のケースが可能かどうかについてはまだ興味があります。フォルダー全体をrdiffでバックアップするということは、膨張したファイルをバックアップメディアにバックアップすることを意味しますが、ベアリポジトリは160MBではなく4MBを使用します。また、私が考えていたので、それが可能かどうかを知りたいだけです。眠りを失います。
使用 gitサブモジュール
サブモジュールを使用すると、サブリポジトリの変更の特定の詳細を追跡することなく、他のリポジトリ内にリポジトリを配置できます。
この機能は、他の場所で追跡されている依存関係に依存する可能性のあるプロジェクトを処理するために特別に作成されました。
より詳細な使用例をいくつか示しますが、この特定の機能を使用する理由はまだありません。
この特定のケースは不可能です。そして、実用的ではありません。
git add -A
はネストされた.git
サブディレクトリを考慮しません。.svn
は機能しますが、他のすべてを無視するように注意深く調整された.gitignore
が必要になります。コメントの akira で示唆されているように、圧縮されたssh上にインクリメンタルコピーを使用する別のバックアップジョブがより良い解決策です。