GitHubリポジトリからzipファイルを抽出する方法は?

GitHubリポジトリからzipファイルを抽出する方法は?

GitHub GUIを使用すると、zipファイルをリポジトリにアップロードできますが、抽出することはできません。

ファイルを直接アップロードできますが(アーカイブされていません)、問題は一部のファイルがディレクトリであり、GitHub GUIではディレクトリのアップロードを許可しないことです。

コマンドラインでこの問題を解決する方法はありますか?

答え1

  1. あなたできないGitHubでzipファイルを解凍します。サーバーだから保存GitHubを使用しないと、コンピューティングサービスはありません。行動[トピックを離れて]。

  2. あなたできるディレクトリとファイルを追加する限り(繰り返し)アップロードするのに問題はありません。github add .ポイント.は、そのディレクトリ内のすべてです。

  3. GitHub [コメント]からzipファイルをダウンロードgithub cloneして解凍すると、コンピュータ[Compute Engine、CPU]で実行されます。ディレクトリで次の操作を行います。

    git init
    git add .
    git commit -m "first commit"
    
    • git initgitを起動して.git
    • git add .フォルダ、ファイルなどを含め、送信したいすべての項目を選択してください。
    • git commit -mメッセージと共にコミットを保存するだけです。
    git add origin master url_from_github_repository
    git push origin master
    
    • addgitにリモートアドレス[url-server]を追加するように指示します。
    • originリモートアドレス[ショートカット]の名前であり、何でも可能なので入力する必要はありません。URL毎回[www.github.com/user/repo]。
    • masterブランチの名前です。多くのブランチを持つことができますが、master通常変更するブランチはブランチです。
    • git pushコミット[すべてのコンテンツ]をGitHub.comのリポジトリにアップロードします。仕える人]。
ついに

大容量ファイル[画像、ビデオ、psd]をサーバーにアップロードし、これらのファイル[git]の変更を継続的に追跡するためにサードパーティが提供する別のサービスがありますが、いいえ アップロードGitHub.comで。名前はgit lfs。これはgitを使用する別のプログラムなので、最初にインストールする必要があります。
git大容量ファイルの保存

答え2

私はこのプロジェクトの著者です: https://unzipgit.github.io

説明する:

Githubはリポジトリ内のアーカイブを解凍するオプションを提供していませんが、解決策があります。この問題はGithub API(https://docs.github.com/en/rest/repos/contents)。そのAPIを使用すると、リポジトリにファイルをアップロードできます。もちろん、アーカイブを送信するとアーカイブがアップロードされますが、アーカイブを解析して繰り返し実行すると、各ファイルを独自のリポジトリに送信できます。

個人的な経験でもこの問題が発生しました。このソリューションは、作成後にGithubを待っていたことがわかりました。多くの場合、大企業が何かを実装するのを待つのではなく、直接実行する方が簡単です。

JavaScriptについて話すと、JSZipを使用してZIPアーカイブの内容を取得できます(https://stuk.github.io/jszip/)。驚くべきことに、これは非常に便利なライブラリです(ファイル読み取りモードの選択のおかげで特にそうです)。非常に単純化すると、アップロードアーカイブは次のようになります。

// reading the archive
zipFile = await zip.loadAsync(inputArchive, { binary: true });
// loop
for (const [p,f] of Object.entries(zipFile.files)) {
  // read as base64
  base64file = await f.async("base64");
  // upload to github
  await reqest("PUT",`${url}/${fileName}`,{content: base64file});
}

これを直接実装するか、自分で作成したソリューションを使用できます。ロジックは私がすでに言ったのと同じです。便宜上、コンピュータからアーカイブを送信するか、すでにリポジトリにあるアーカイブを選択する機能を実装しました。どちらの場合も、ブラウザはアーカイブをロードして繰り返し、各ファイルをリポジトリに送信します。

関連情報