1. ホーム
  2. コース一覧
  3. Python環境構築コース
  4. git cloneでコピーしたPythonのプログラムを実行してみよう

Python環境構築コース7/7

git cloneでコピーしたPythonのプログラムを実行してみよう

こちらでは、 git cloneコマンドについて紹介します。Gitの操作を学んだ後はシナリオを起動し、実際にPythonのプログラムをcloneするハンズオンを行いましょう。

git cloneとは?

git cloneは、指定したディレクトリに既存のリポジトリを複製できるコマンドです。

主に、1つのシステムを複数人で、同時に開発する場合に利用します。 各々の環境に複製してから編集することで、以下のメリットがあります。

  • 何かしらのトラブルが発生した場合に、容易に過去の状態に戻せる
  • 同時にファイルを編集してしまった場合には警告が出るため、他人の編集内容に意図せず上書きしてしまうことを防げる

GitHub関連記事

https://envader.plus/article/68

git cloneの基本的な使い方

リポジトリをそのまま複製

git cloneの後にリポジトリのURLを指定して実行します。

git clone リポジトリURL 

privateリポジトリの場合、clone時に認証が求められます。

クローンされると、カレントディレクトリにリポジトリの名前でディレクトリが作成されます。 作成されたディレクトリ内に、リポジトリの内容が入ります。

(例) リポジトリ「envader-scenario-1077」をクローンした場合


(カレントディレクトリ)
├── envader-scenario-1077
     ├── (リポジトリの内容)
     └── (リポジトリの内容)
     └──…

cloneしたリポジトリを別名で複製

URLの後ろにディレクトリを指定すると、そのディレクトリ内に複製されます。

git clone リポジトリURL ディレクトリ名

指定したディレクトリ名でディレクトリが作成され、その中にリポジトリの内容が入ります。

(例) リポジトリ「envader-scenario-1077」をディレクトリ名「selectedDirectory」にクローンした場合


(カレントディレクトリ)
├── selectedDirectory
     ├── (リポジトリの内容)
     └── (リポジトリの内容)
     └──…

git cloneの通信方式の指定

リポジトリをクローンするする時にも通信方式があり、http方式、git方式、ssh方式などがあります。

それぞれ git clone の後に 通信方式:リポジトリURLとするだけで通信方式を指定することができます。

http方式

http方式は、通信速度が早く高速で通信したいときに使われます。

git clone http:リポジトリURL ディレクトリ

git方式

git方式はさらに高速で通信することができます。 しかし、以下のデメリットがあります。

  • 認証部分が暗号化されない
  • クローンしたものの参照のみ(読み取り専用)

参照のみでpushをする必要がない時におすすめです。

git clone git:リポジトリURL ディレクトリ

ssh方式

sshは開発現場で使われることが多い方式です。 認証部分を含めたネットワーク上のすべての通信が暗号化され、安全に通信できます。しかし、他の方式と比べると通信速度が遅いため、巨大なリポジトリだとかなりの時間がかかってしまいます。

git clone ssh:リポジトリURL ディレクトリ

git cloneのオプション

git cloneにはたくさんのオプションが用意されています。 代表的なものを紹介します。

オプション一覧の表示 -h

-hオプションをつけて実行すると、オプション一覧を確認できます。

git clone -h

(実行結果)

usage: git clone [<options>] [--] <repo> [<dir>]

$  -v, --verbose         be more verbose
$  -q, --quiet           be more quiet
$  --progress            force progress reporting
$  -n, --no-checkout     don't create a checkout
$  --bare                create a bare repository
$  --mirror              create a mirror repository (implies bare)
$  -l, --local           to clone from a local repository
...
# 以降、省略

ブランチの指定 -b

通常、git cloneではmainブランチを取得します。 -bオプションを使うと、ブランチの指定が可能です。

git clone -b 指定したいブランチ名 リポジトリURL

クローン時のメッセージを非表示に -q

通常、clone時には進捗状況が出力されます。 -qをつけると、この進捗状況を非表示にできます。

git clone -q リポジトリURL

取得するコミット数を指定する --depth

--depthオプションで、指定した数字の回数分、直近のコミットだけを複製できます。

(例)1を指定した場合、最新のコミット分のみを複製

git clone --depth 取得したい過去のコミット数 リポジトリURL

コミット履歴が大量のリポジトリであっても、素早く複製が可能となります。

git cloneに関するその他の操作

git cloneに関連する操作について紹介します。

ローカル内のブランチ一覧を表示する

git branchを実行すると、ローカル内のブランチ一覧を確認できます。

git branch

リモートリポジトリの場所を確認

リモートリポジトリがネットワーク上のどこに存在するのか調べたいときは git remote -v を実行します。 実行することでリモートリポジトリの場所を確認できます。

git remote -v
origin リモートリポジトリのURL

Git操作関連記事

https://envader.plus/course/5/scenario/1055

まとめ

今回はgit cloneについて解説しました。

git cloneコマンドは複数人で開発するときに必ずといっていいほど使います。

git clone リポジトリURL

開発開始時に1回実施するだけなので、使用頻度はそこまで多くはありません。 ただ1回は必ず使うコマンドなので、使い方は覚えておきましょう。

問題を解くためには、十分な画面サイズのPC環境をご利用下さい。