2012-08-09 17 views
8

バージョン管理のためにgitを使い始めました。リポジトリのバックアップコピーをローカルファイルサーバに保存したいと思います。 gitリポジトリをバックアップする正しい方法について読んだら、リポジトリをgitバンドルとしてファイルサーバーに保存することにしました。私はgitバンドルにどのようにプッシュすることができます

私のリポジトリをバンドルし、結果のバンドルをファイルサーバーにコピーできます。チェック。私はそれからクローニングして引っ張ってみました。すべてうまく動作します。しかし、私はローカルの変更を時折プッシュしたいと思っています。私は

git push bundlefile.git 

のようなものを実行すると、私はエラーを取得する:

error: failed to push some refs to 'bundlefile.git' 

あなたはクローンを作成またはバンドルから引くが、それにプッシュすることはできませんか?バックアップするたびにリポジトリ全体のバンドルを作成する必要はありません。

このユーザーエラーですか、プッシュされていないバンドルですか?

+0

'git bundle'のマニュアルページの最後でバンドルファイルを操作し、段階的に更新する方法の素晴らしい例があります。 – Christopher

+0

これはバンドルと裸のレポを使って少し遠くになっているようです。単にgit repoをバックアップしたい場合は、.gitディレクトリをtar(またはzip)してください。たぶんサイズを少し小さくするためにまず "git gc"をやってください。これは難しい問題ではなく、複雑な解決策を必要としません。 –

答えて

5

バンドルファイルに直接プッシュすることはできません。バンドルファイルは、リポジトリの圧縮された表現であり、変更するにはアンバンドリング、プッシュ、およびバンドルを再度行う必要があります。

これを行う方法の1つは、バックアップを作成するたびに新しいバンドルを作成することです。

もう1つの方法は、ベアのファイルサーバーにリポジトリを作成し、それをプッシュすることです。ベアリポジトリは、作業ディレクトリのないリポジトリです。これは、基本的に通常のクローンのディレクトリ.gitの内容です。 git init --bareで裸のリポジトリを作成することができます。

+0

それは良い提案です。私は、バックアップソリューションとして機能する圧縮された単一のファイルを持つことを好みましたが、プッシュの容易さはそれらの考慮事項よりも重要です。ありがとう! – farnsy

-4

ファイルサーバーにアクセス許可の問題があるようです。ユーザー/グループに書き込み権限があることを確認してください。

関連する問題