2016-11-17 100 views
0

私は大規模なGitプロジェクトをGit-LFSに移行するプロセスを進めています。これには、Git-LFS内に特定のファイルを作成して含めるためのリポジトリ履歴全体を書き換えることが含まれます。プロセスのこの部分は問題ありません。Gitミラーをチャンクでプッシュするにはどうすればいいですか?

私はトラブル上流リモート(GitHubの)に新しいリポジトリをプッシュを持っていますが、一度にプッシュするためには大きすぎる表示されている:私は、同様の結果でHTTPSを使用してみました

PS > git push 
Counting objects: 337130, done. 
Delta compression using up to 12 threads. 
Compressing objects: 100% (73730/73730), done. 
remote: fatal: pack exceeds maximum allowed size 
fatal: sha1 file '<stdout>' write error: Broken pipe30 MiB/s 
error: failed to push some refs to '[email protected]:my-repo.git' 

PS > git push 
Counting objects: 337130, done. 
Delta compression using up to 12 threads. 
Compressing objects: 100% (73730/73730), done. 
error: RPC failed; curl 55 SSL_write() returned SYSCALL, errno = 10053 
fatal: The remote end hung up unexpectedly 
Writing objects: 100% (337130/337130), 3.58 GiB | 388.62 MiB/s, done. 
Total 337130 (delta 261838), reused 337130 (delta 261838) 
fatal: The remote end hung up unexpectedly 
Everything up-to-date 

これは多少共通で、一度にアップロードするコミットのチャンクを指定しているようです。しかし、私のレポは、ミラークローンであると指定されたrefspecsでは動作しません:

PS > git push -u origin HEAD~5000:refs/heads/master 
error: --mirror can't be combined with refspecs 

私はチャンクでリモート上流にミラーリングされたレポをプッシュすることができる方法上の任意のアイデア?

答えて

1

一時的にプッシュミラーリングを無効にするには、remote.name.mirrorをgit configでfalseに設定します。 --mirror

プッシュ単に(すべてrefs/下)全て参考文献を押し、プッシュミラーが有効--mirrorフラグを設定としてリポジトリを構成します。限られたコミットセットをプッシュするには、git push remoterefspecを実行する必要があります。これにより、refspecが十分に小さなコミットセットを参照できるようになります。

-uは、現在のブランチのアップストリームを設定していますが、プッシュミラーは通常、アップストリームをまったく使用しません。

(リモートで十分なコミットができたら、プッシュミラーリングを有効にすることができます。プッシュミラーリングは、理論上は薄いのではなく、薄くする必要があります。 )。

+0

プッシュミラーリングを一時的に無効にする方法を教えてください。 –

+1

'リモートを設定します。 。ミラー "をgit configでfalseに設定します。 https://www.kernel.org/pub/software/scm/git/docs/git-config.html – torek

+0

本物を参照してください。私はrefspecsにも問題があります。約15kのコミットがあります。あなたは3〜4回のプッシュをすることができると思いますか? –

関連する問題