で git リポジトリの増分バックアップを行う最も簡単な方法は何git bundle
ですか?
1 つのブランチだけをバックアップしたい場合は、次のようなことができます。
git bundle create foo last-backup..master
git tag -f last-backup master
しかし、すべて (すべてのブランチを含む) をバックアップしたい場合はどうすればよいでしょうか?
コメントの質問に答えるには:
厳密に言えば、ソリューションが次の特性を満たしている限り、通常の Git バンドルを使用する必要はありません。
各増分バックアップは 1 つのファイルです。どこかに保存でき、その後の増分バックアップでこのファイルを変更する必要はありません。
ファイルのサイズは、前回のバックアップ以降の Git コミットの合計サイズとほぼ同じです。バイナリ ファイルの変更も効率的に保存されます。
それ以降の完全バックアップとすべての増分バックアップには、すべてのブランチを含む、リポジトリを自動的に再構築するために必要なすべてが含まれています。
(単純な例として、自動ガベージ コレクションが発生した場合など、git リポジトリ内の最近変更されたファイルを含む tar アーカイブを単純に構築するだけでは、2 番目の要件を満たすことができません。)
そして理想的には、私はばかではないシステムを持ちたいと思っています:
- Git リポジトリのほぼすべての完全バックアップと、最近のすべての増分バックアップを取得できます。バックアップからすべてを「プル」するだけで、リポジトリが最新になります。特に、完全バックアップと増分バックアップの間に部分的な重複があっても問題ありません。
ブランチを 1 つだけ処理する必要がある場合、Git バンドルはこれらすべてをうまく満たしてくれます。