web-dev-qa-db-ja.com

gitリポジトリをバックアップするにはどうすればよいですか?

SVNからgitに切り替える予定です。 svnを使用すると、バックアップしたいときにリポジトリフォルダをコピーするだけです。ただし、gitにはないので、どうすればよいですか?

別のドライブにクローンを作成し、プロジェクトからプルして更新する必要がありますか?次に、このフォルダを書き込み/アーカイブすると、すべての履歴が含まれますか?

これはおそらく明白ですが、バックアップに関しては確認したいと思います。私はまだルートリポジトリがあるふりをしています。

26
user3109

あなたはそれをコピーするだけです。 git does repoフォルダーを使用します。通常のディレクトリビューには表示されません。 (* nixシステムではフォルダー名は.gitであるため、ls -aを使用した場合にのみ表示されます。Windowsで「非表示」属性が設定されていると思いますが、gitを使用したことはありませんWindows環境なので、そこでの処理方法がわかりません。)

14
Dave Sherohman

Akiraの答えは正しいですが、-mirrorを追加してベアリポジトリを作成できます(わずかに小さいバックアップ用)。

次の戦略を使用します(ほぼ正確に)。

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

次に、バックアップから回復するには:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo
19
akirisol

git bundle を使用しています。コピーファイル(1つのバックアップファイル)を作成するには、次のコマンドを実行します。

git bundle create backup.bundle master

ブランチマスターでリポジトリを復元するには、単にbackup.bundleファイルを複製します。

git clone backup.bundle -b master my-project
10
MariuszS

別の場所に新しいクローンを作成します。

 % git clone yourepo somewhereelse

ところで、git has repoフォルダー。作業コピーのサブディレクトリ.gitの下にあります。すべての作業コピーには、その「repoフォルダー」があります。

2
akira