どうすれば誰かにgitリポジトリをメールで送信できますか?


84

私が試してみました:

git archive HEAD --format=zip > archive.zip

:次に、archive.zipに電子メールを送信し、もう一方の端でarchive.zipをフォルダーに解凍します。しかし、gitコマンドを試してみると、これでは有効なgitリポジトリが生成されないことがわかります。


19
これを見つけた他の人のために:gitアーカイブが仕事に適していない理由は、それが作業ツリーをパッケージ化するだけだからです。これは、配布用に、すべてのソースのtarballを作成するようなことを行うためのものです。
Cascabel 2010年

回答:


113

git bundle1つのファイルを使用してメールで送信できます

「を参照してくださいgitのを使用するプロジェクトをバックアップします

gitバンドルは、別のリモートのように扱うことができるため、非常に簡単に作成して再度インポートできる1つのファイルです。

受信したら、クローンを作成するか、そのファイルからフェッチできます。

githubリポジトリのバックアップ」で述べたように、最初のメールですべてのブランチをバンドルする必要があります。

$ git bundle create /tmp/foo-all --all

アンドレアスはコメントで言及し、スコット・チャコンは最近(2010年3月)には、このトピックの「かわいい」の記事を書いたProGitブログ

Gitの小さな喜びの束


3
@Zubair:はい、すべての履歴が保存されます。 git archiveます!
vonC 2010年

2
ありがとう。私はそれを理解しました:git init、そして:git pull bundle.bdl master
appshare.co

6
@Zubair:バンドルを解除しますか?クローンを作成するだけで、通常のgitリポジトリに戻ることができます。または、空のリポジトリにプルします。つまり、私は今、あなたがしたことを理解しています;)
VonC

1
これは、bundleコマンドの使用方法とその機能の概要です。progit.org
Andreas


4

前の答えが言ったように、gitバンドルが方法です。

1つのブランチのみを使用してバンドルを作成し(マスターのみをバンドルすることをお勧めします)、電子メールで送信する場合は、次のようにすることができます。

$ git bundle create /tmp/mygitbackup.bundle master

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.