Githubリポジトリをリモートサーバーにクローンする

さくらのレンタルサーバーへGithubリポジトリをクローン

Githubで作成したリモートリポジトリをリモートサーバーへクローンする手順を
さくらのレンタルサーバーを例にメモします。

環境:さくらのレンタルサーバ スタンダードプラン、 git version 2.23.0(インストール済み)

Github上でサーバーへデプロイした内容を管理出来る

こちらを行うと公開しているサイトの更新履歴をGithub上で視覚的に管理することができ
ローカルリポジトリでの変更をサーバー側からでプルする事で簡単にサイトを更新出来るようになります。

Github上でリモートリポジトリを作成する

Githubから新規でprivateリポジトリを作成しておきます。

サーバー上でSSHキーのペアを作成する

Github側でサーバーからのSSH通信の認証許可をする必要があり、
サーバー側でSSHキーのペアを作成します。

リポジトリをクローンするサーバー側がSSHクライアント、
Github側が接続先ホストとなります。

(既にローカルPC上にGithubアカウント用SSHキーがある場合は、
新たにキーペアを作成せず、そちらをサーバーへ転送して使用してもOKです)

サーバーへSSHログインする。

ssh-keygen コマンドでSSHキーペアを作成
-C オプションでGithubアカウントで使用しているメールアドレスを指定します。

% ssh-keygen -t rsa -b 4096 -C XXXXX@gmail.com

鍵の名前、パスフレーズの指定が聞かれますが、
何も押さずにEnterで進めていけばデフォルトの名前(id_rsa、id_rsa.pub)でパスフレーズを必要としないキーペアが作成されていきます。

Enter file in which to save the key (/home/(ユーザ)/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

/home/(ユーザ)/.ssh配下に、キーペアが作成されます。

Githubアカウントへ公開鍵を登録する

作成した公開鍵の中身を表示してコピーします。

% cat ~/.ssh/id_rsa.pub

ssh-rsaからメールアドレスまでをコピー

Githubを開き、アカウントの設定項目「Settings」から「SSH and GPG keys」画面を開く。
「New SSH key」で開いた画面へ先ほどコピーした公開鍵の内容を貼り付けてAdd SSH keyで登録

~/.ssh/configファイルを作成する

ファイル /home/(ユーザ)/.ssh/config(拡張子無し)を作成し、以下のように中身を記述します。
GithubへSSH接続する際に参照されるファイルで、秘密鍵の名前を変更している場合は
IdentityFile ~/.ssh/id_rsa
で指定する鍵の名前をそれに合わせてください。

/home/(ユーザ)/.ssh/config

Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

Githubリポジトリをクローンする

Githubリポジトリをクローンするための準備が整いましたので実行していきます。

クローン先を作成する

サーバーにGithubリポジトリのクローン先に指定するディレクトリを作成します。
(クローン先のディレクトリは空でないといけません)

今回はさくらのレンタルサーバーの公開ディレクトリ/home/(ユーザ)/wwwの中に作成していきます。
(mysiteとして作成)

% mkdir www/mysite

クローンを実行

Githubを開き、作成したリポジトリの画面に記載の
「Quick setup — if you’ve done this kind of thing before」
の箇所からSSH方式を選択し、gitホスト名とリポジトリパスをコピーする

サーバーで作成したクローン先へ移動して

% cd www/mysite

git clone コマンドへgithubでコピーしたアドレスを指定して実行

% git clone git@github.com:(githubアカウント名)/(githubリポジトリ名).git
Cloning into '(githubリポジトリ名)'...
warning: You appear to have cloned an empty repository.

githubリポジトリと同じ名前のディレクトリがクローン作成されていれば完了です。
(配下がバージョン管理の対象となる)

git remote -v コマンドで、クローンGithubリポジトリへ紐づいている事が確認できる。

% cd /home/(ユーザ)/www/mysite/(githubリポジトリ名)/
% git remote -v
origin	git@github.com:(githubアカウント名)/(githubリポジトリ名).git (fetch)
origin	git@github.com:(githubアカウント名)/(githubリポジトリ名).git (push)

前述の公開鍵の登録と.ssh/configファイルが正しく行えていないとクローンが完了せず、以下のメッセージが表示されます。

Permission denied (publickey).
fatal: Could not read from remote repository.

バージョン管理の検証を行う

サーバーからホスティング先のgithubリモートリポジトリへ変更をコミットしてバージョン管理の検証を行ってみます。

リポジトリ内で妥当なファイルを作成して、コミット

% touch test.text
% ls
test.text
% git add .
% git commit -m "first commit"

コミットが完了したらプッシュ

% git push origin master

(Github)該当リポジトリのコミット履歴から、コミット内容が確認出来ました。

Follow me!

Githubリポジトリをリモートサーバーにクローンする” に対して1件のコメントがあります。

コメントは受け付けていません。