GitHubのファイルをダウンロードできない?Linuxにダウンロードする3つの方法

GitHubのファイルをダウンロードできない?Linuxにダウンロードする3つの方法 プログラミング
困ったさん
困ったさん
誰かが開発したGitHubのコードをLinux上にダウンロードして使いたいんだけど。。。

こんな疑問を解決します。

この記事を書いてる人

FUMIPEN blogを運営
本記事の内容

  • GitHubからLinux環境にコードを持ってくる3つの方法
  • GitHubでダウンロードできない時の対策

本記事では「GitHubのコードをLinuxの環境に持ってくる方法」について解説

この記事を読むことで、スムーズにダウンロードでき開発環境を自分の慣れたLinux環境で進めることができます。

結論から話すと、

結論

  • GitHub初心者:GitHubをZipファイルでダウンロード
  • GitHub中級者:Gitコマンドをインストールして、Git cloneでダウンロード
  • GitHub上級者:GitHub CLIをダウンロードして、Git repo cloneでダウンロード
  • 番外編:個別にダウンロードしたい場合
  • コードをダウンロードできない場合:GitHubの<code>をクリック

GitHubからLinuxにダウンロードする方法

(引用:GitHub公式ページ

GitHubとはユーザーがオープンソースでソースコードをホスティングする(サーバーを借りる)ことで様々なプロジェクトを管理しながら、ソフトウェアの開発を行うことができる

引用:GitHub公式ページ 

ふみペン
ふみペン
様々な方の知恵を借りながらより良い開発を行うことができるんだね!

そのため、技術開発を行っている方にとっては知っておいて損はないサイトかと思います。

またLinuxからGitHubにアップロードする方法はlinuxで作業した内容をGitHubにSSH接続してアップロードする6つの手順を解説で解説。

また体系的にLinuxについて学んで理解を深めたいならばこちらの書籍も読んでみるといいかもしれません。

またGitHubから開発者の作成したファイルをダウンロードして実行したい時があると思います。

GitHubからダウンロードする方法

  • GitHub初心者:ZIPファイルをダウンロード
  • GitHub中級者:Gitコマンドをインストールしてダウンロード
  • GitHub上級者:GitHub CLIをインストールしてダウンロード
  • 番外編:個別にファイルをダウンロードしたい場合

一つづつ解説します。

GitHub初心者:ZIPファイルをダウンロード

GitHub ダウンロード ZIP

(引用:tensorflow)

ZIPファイルのダウンロード方法

  • Codeを選択
  • Download ZIPを選択

これで自分のLinuxの開いてるフォルダに保存すればファイルをLinux上で開くことができます。

ふみペン
ふみペン
もしGITコマンドをダウンロードしてなかったりしたら、この方法が一番シンプルで使いやすいね!

GitHub中級者:Gitコマンドをインストールしてダウンロード

続いてはGIT中級者の方に勧める方法で、GITコマンドを使ったダウンロード方法になります。

必要なものは

  • GITコマンド
  • GITコマンドの使用方法

この二つです。まずはGITコマンドから準備していきましょう。

LinuxでGITコマンドを準備する

Linuxと言ってもディストリビューションによってインストール方法は違います。

もしFedoraのようなCentOS系を使用してる場合は

sudo yum install git-all

UbuntuのようなDebian系を使用してる場合は

sudo apt-get install git-all 

でインストールしてください。

GITコマンドを使用したダウンロード方法

GitHub ダウンロード方法 GITコマンド

(引用:tensorflow)

HTTPSのURLをコピーしたらLinux上で

git clone https://github.com/tensorflow/models.git
Cloning into 'models'...
remote: Enumerating objects: 66053, done.
remote: Counting objects: 100% (66053/66053), done.
remote: Compressing objects: 100% (19086/19086), done.
remote: Total 66053 (delta 46306), reused 66053 (delta 46306), pack-reused 0
Receiving objects: 100% (66053/66053), 575.68 MiB | 5.08 MiB/s, done.
Resolving deltas: 100% (46306/46306), done.
Updating files: 100% (2773/2773), done.

こんな感じでダウンロードが開始されて、すぐインストールすることができます。

ふみペン
ふみペン
ZIPファイルでダウンロードするよりも素早くLinux上にダウンロードできるよ!

GitHub上級者:GitHub CLIをインストールしてダウンロード

それでは最後は上級者の方に向けに話します。

GitHub CLIとは

GitHub CLI は、コンピューターのコマンドラインから GitHub を使用するためのオープンソースツールです。 コマンドラインから作業しているときは、GitHub CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。

引用:About GitHub CLI

要はいちいちwebサイトを開いてURLをコピーしなくても、Linux上ですべてを簡潔することができるようなものです。

ふみペン
ふみペン
最終的にこの状態までもっていけば時間の節約になるし、いいよね!

そしてこのコマンドを使用できるようになるためには

  • GItHub CLIのインストール
  • ghコマンドを使用してるシェルに登録(.zshrcや.bashrc)
  • ghコマンドの使用方法

この二つを理解する必要があります。

一つずつ解説します。

GitHub CLIのインストール

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
sudo apt-add-repository https://cli.github.com/packages
sudo apt update
sudo apt install gh[sudo] password for fumipen:
Executing: /tmp/apt-key-gpghome.nqlIB2aQox/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
gpg: key C99B11DEB97541F0: public key "Nate Smith <vilmibm@github.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1 

これでGitHub CLIをインストールすることができました。

もしかしてこれだけで使えるようになるの??
困ったさん
困ったさん
ふみペン
ふみペン
いや、ここからあとひと手間かければ使えるようになるよ!

ghコマンドを使用しているシェル(.zshrcや.bashrc)に登録

 eval "$(gh completion -s zsh)" 

私はzshを使用していたので、最後の文字がzshですがもし、bashをお使いなら

  eval "$(gh completion -s bash)"

になります。

自分の使用しているシェルがわからないよ・・・
困ったさん
困ったさん

という方は

echo $SHELL 

と打って貰えば使用しているシェルが分かります。

打ち込み終わったら

 zsh

.zshrcを再度読み込ませましょう。

ここで、

 ●gh 
Work seamlessly with GitHub from the command line.

USAGE
  gh   [flags]

CORE COMMANDS
  browse:     Open the repository in the browser
  codespace:  Connect to and manage your codespaces
  gist:       Manage gists
  issue:      Manage issues
  pr:         Manage pull requests
  release:    Manage GitHub releases
  repo:       Create, clone, fork, and view repositories

ACTIONS COMMANDS
  actions:    Learn about working with GitHub actions
  run:        View details about workflow runs
  workflow:   View details about GitHub Actions workflows

ADDITIONAL COMMANDS
  alias:      Create command shortcuts
  api:        Make an authenticated GitHub API request
  auth:       Login, logout, and refresh your authentication
  completion: Generate shell completion scripts
  config:     Manage configuration for gh
  extension:  Manage gh extensions
  gpg-key:    Manage GPG keys
  help:       Help about any command
  secret:     Manage GitHub secrets
  ssh-key:    Manage SSH keys

FLAGS
  --help      Show help for command
  --version   Show gh version

EXAMPLES
  $ gh issue create
  $ gh repo clone cli/cli
  $ gh pr checkout 321

ENVIRONMENT VARIABLES
  See 'gh help environment' for the list of supported environment variables.

LEARN MORE
  Use 'gh   --help' for more information about a command.
  Read the manual at https://cli.github.com/manual

FEEDBACK
  Open an issue using 'gh issue create -R github.com/cli/cli'

に出てきたら、しっかりとghが読み込まれている証拠です。

ghコマンドでGitHubとlinuxを繋げる

●gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: E313-57F9
- Press Enter to open github.com in your browser... 
GitHub CLI ログイン LINUX

パスワードを入力します。

GitHub CLI ログイン LINUX

Authorize githubをクリックします。

GitHub CLI ログイン LINUX

Congratulations!!ということで認証は完了しました。。。。。

認証が完了しない??

failed to authenticate via web browser: mkdir /Users/fumipen/.config/gh: permission denied 
え??permission denied!?
困ったさん
困ったさん

「認証がエラーで、mkdirでghを作れない」とあります。

ふみペン
ふみペン
こういうときは次の二つの方法で解決するよ!
  • sudo gh auth login
  • sudo chmod 777 .config

どちらの管理者権限で実行することなので、認証エラーが出るということがなくなります。

GitHubのデータをghコマンドを使用してLinuxにダウンロード

●gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? SSH
? Upload your SSH public key to your GitHub account? /Users/fumipen/.ssh/id_rsa.pub
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: 4201-F10D
- Press Enter to open github.com in your browser... 
✓ Authentication complete. Press Enter to continue...

- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
✓ Uploaded the SSH key to your GitHub account: /Users/fumipen/.ssh/id_rsa.pub
✓ Logged in as fumipen 

このように認証が完了します。

そうするとコマンドを使用してGitHubからダウンロードすることが可能となります。

GitHub CLI ダウンロード

このURlをそのままコピペーすればインストールが開始します。

●gh repo clone tensorflow/models
Cloning into 'models'...
remote: Enumerating objects: 66053, done.
remote: Total 66053 (delta 0), reused 0 (delta 0), pack-reused 66053
Receiving objects: 100% (66053/66053), 575.68 MiB | 6.94 MiB/s, done.
Resolving deltas: 100% (46300/46300), done.
Updating files: 100% (2773/2773), done. 
ふみペン
ふみペン
以上が三つの方法でした!一番最後の方法が今後GitHubを使用していくなら便利かもね!

番外編:個別にファイルをダウンロードしたい場合

今の方法はフォルダをダウンロードしてけど、txtファイル一つをダウンロードしたい時は??
困ったさん
困ったさん
ふみペン
ふみペン
大丈夫!!その方法もしっかりあるから今から解説するね!

方法は2つほどあります。

GitHubから個別にファイルをダウンロードする方法

  • CurlやwgetコマンドでURLを使ってダウンロード
  • ファイルを直接名前をつけて保存

今回は二つ目の方法を解説します。

ファイルを直接名前をつけて保存

個別ファイル GitHub 保存

例えば白枠で囲ってある.gitgnoreファイルが欲しいとしましょう。

まずは.gitgnoreをクリックします。

個別ファイル GitHub 保存

づついてRawをクリックします。

個別ファイル GitHub 保存

右クリック、macならダブルタップで別名保存で完了です。

ふみペン
ふみペン
wgetやcurlがあればURLからダウンロードできるからそちらも是非試してみてください!

ダウンロードに行くまでの場所が見つからない時

しかし、ダウンロードページに行くまでがなかなか大変だったりしますよね。

  • 欲しいプログラムのGitHubまで飛んだけど、ダウンロードページが出てこない

こんなとき自分にもありました。例えばこんな場面とかですね。

github ダウンロード できない
なんだよ!!ダウンロードできなファイルもあるのかよ!!
困ったさん
困ったさん

と昔の自分は焦っていましたが、一発で解決します。

GitHub ダウンロード できない

そうすると。。。

GitHub ダウンロード できない

このように無事に現れます。

GitHubから自由にダウンロードして快適に開発を楽しもう

いかがだったでしょうか?まとめますと、

フォルダのダウンロード方法

  • GitHub初心者:GitHubをZipファイルでダウンロード
  • GitHub中級者:Gitコマンドをインストールして、Git cloneでダウンロード
  • GitHub上級者:GitHub CLIをダウンロードして、Git repo cloneでダウンロード

三つのパターンを紹介させてもらい、最終的には皆さんには三つ目の方法を使っていただきたいと思います。

続いて個別にダウンロードする場合について解説しました。

個別にダウンロードする方法

  • CurlやwgetコマンドでURLを使ってダウンロード
  • ファイルを直接名前をつけて保存

二つ目を今回は紹介させていただきました。

最後にダウンロードできない場合は<code>をクリックすればダウンロード先に飛べることも解説しました。

LinuxからGitHubにアップロードする方法はlinuxで作業した内容をGitHubにSSH接続してアップロードする6つの手順を解説で解説もしております。

さらにこういう私も現在はpythonを用いて画像解析を勉強中です。

犬、猫、ペンギンを判別する深層学習(ディープラーニング)を作ってみた!などで実装も試しています。

是非みなさんも開発環境を整えてより、快適なプログラミングライフを送れることを祈っております。

最後まで見ていただきありがとうございました。