git archive fatal:プロトコルは操作をサポートしていません。

git archive fatal:プロトコルは操作をサポートしていません。

私はgit cloneこれをすることができます...

 git clone https://github.com/stackforge/puppet-heat.git

...問題ありません。しかし、私はレプリカに付属しているすべてのgitメタエントリを除外したいので、それを使用すると思いましたが、次のgit archiveエラーが発生します。

$ git archive --remote=https://github.com/stackforge/puppet-heat.git 
fatal: Operation not supported by protocol.

なぜまたは私が間違っているのか知っている人はいますか?

答え1

githubのsvnサポートを使用できます。

svn export https://github.com/user/project/trunk

詳しくはこちらをご覧ください。

https://stackoverflow.com/questions/9609835/git-export-from-github-remote-repository

答え2

git clone説明したように実行し、複製されたディレクトリ全体に散在しているディレクトリを削除しました.git

$  find puppet-heat/ -name '.git' -exec rm -fr {} +

答え3

git archiveはまだ正しい方法です。

クローンhttps://github.com/stackforge/puppet-heat.git CD Puppet-Heat git アーカイブ

明らかに、あなたのアプローチがうまくいかないのは、githubがリモートアーカイブをサポートしていないか、またはサポートしていないからです。これは、アーカイブが実際にgithubサーバーにファイルとして生成され転送されることを意味します。

したがって、リポジトリを複製し、レプリカでgit archiveを実行するだけです。

答え4

ちなみに、bitbucketを使っても同じエラーが発生しました。プロトコルをhttpsからsshに切り替えましたが、うまくいきました。

たとえば、

git archive [email protected]/stackforge/puppet-heat.git 

もちろん、これが機能するには公開/秘密鍵を設定する必要があります。

私はgithubがリモート機能をサポートしていないと聞きましたが、この問題に直面している他の人のために、上記の方法で少なくとも私のために問題を解決しました。

リポジトリが大きいため、svn エクスポートと同等の操作を実行する場合は、レプリケーションは実際にはオプションではありません。

関連情報