2017-08-28 15 views
1

私はGitリポジトリと、インターネットに接続されておらず、ネットワークにアクセスしていない別の環境のミラーを持っています。
まだ、オフライン環境で元のコピーを一貫して表示する必要があります。
これを行うために、リポジトリ全体をオンライン環境(DOK経由)からオフラインのものにコピーします。次に、このコピーからオフラインリポジトリに移動します。
このプロセスは非常に面倒です。リポジトリが膨大で(20 GB)、コピーにはいくつかのウイルススキャンとディスクからディスクへのコピーが必要です。Git - コピーのみDeltasをコミット

私の質問は、この同期のオーバーヘッドを減らすために、(コミット中に送信されるものに似た)新しいコミットだけをコピーする方法があるかどうかです。

答えて

1

これはgit bundleコマンドが存在する1つの理由です。コミットの範囲を単一のバンドル・ファイルにまとめることができます。 、そして、

git bundle create foo.bundle abc123..master 

:例では、あなたを想定し、すでにオフライン環境でのabc123をコミット持って、あなたは(あなたが望むようあなたができるだけ多くの支店/タグを含めることができます)masterにその後起こったことすべてを荷造りしたいですファイルをオフライン環境にコピーした後、バンドルからブランチの1つをマージする方法の1つは、

# (make sure master is checked out) 
git fetch foo.bundle master 
git merge FETCH_HEAD 
です。
関連する問題