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アカウントで使用しているメールアドレスを指定します。
1 |
% ssh-keygen -t rsa -b 4096 -C XXXXX@gmail.com |
鍵の名前、パスフレーズの指定が聞かれますが、
何も押さずにEnterで進めていけばデフォルトの名前(id_rsa、id_rsa.pub)でパスフレーズを必要としないキーペアが作成されていきます。
1 2 3 |
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アカウントへ公開鍵を登録する
作成した公開鍵の中身を表示してコピーします。
1 |
% 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
1 2 3 4 |
Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa User git |
Githubリポジトリをクローンする
Githubリポジトリをクローンするための準備が整いましたので実行していきます。
クローン先を作成する
サーバーにGithubリポジトリのクローン先に指定するディレクトリを作成します。
(クローン先のディレクトリは空でないといけません)
今回はさくらのレンタルサーバーの公開ディレクトリ/home/(ユーザ)/wwwの中に作成していきます。
(mysiteとして作成)
1 |
% mkdir www/mysite |
クローンを実行
Githubを開き、作成したリポジトリの画面に記載の
「Quick setup — if you’ve done this kind of thing before」
の箇所からSSH方式を選択し、gitホスト名とリポジトリパスをコピーする
サーバーで作成したクローン先へ移動して
1 |
% cd www/mysite |
git clone コマンドへgithubでコピーしたアドレスを指定して実行
1 2 3 4 |
% 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リポジトリへ紐づいている事が確認できる。
1 2 3 4 5 6 |
% 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ファイルが正しく行えていないとクローンが完了せず、以下のメッセージが表示されます。
1 2 |
Permission denied (publickey). fatal: Could not read from remote repository. |
バージョン管理の検証を行う
サーバーからホスティング先のgithubリモートリポジトリへ変更をコミットしてバージョン管理の検証を行ってみます。
リポジトリ内で妥当なファイルを作成して、コミット
1 2 3 4 5 6 7 8 |
% touch test.text % ls test.text % git add . % git commit -m "first commit" |
コミットが完了したらプッシュ
1 |
% git push origin master |
(Github)該当リポジトリのコミット履歴から、コミット内容が確認出来ました。
“Githubリポジトリをリモートサーバーにクローンする” に対して1件のコメントがあります。
コメントは受け付けていません。