さくらのレンタルサーバーにgitのリモートリポジトリを作成する
目次
さくらのレンタルサーバーに専用リモートリポジトリを作成
さくらのレンタルサーバーへ、gitのリモートリポジトリを作成する手順をメモします。
github等のサービスを使用しないでバージョン管理用の専用リポジトリを作成する事が出来ます。
環境:さくらのレンタルサーバ スタンダードプラン、 git version 2.23.0(インストール済み)
ベアリポジトリの作成
ローカルPCからSSHクライアントを利用して、サーバーへログインします。
(Macのターミナルを使用)
$ ssh アカウント名@XXXXXX.sakura.ne.jp
1. ログイン直後、home配下、アカウント名がカレントとなります。
% pwd /home/(アカウント名)
2.リポジトリ用のディレクトリを作成する
(ディレクトリの拡張子を.gitとする必要がある)
% mkdir -p repository/versions.git
3.作成したディレクトリへ移動
% cd repository/versions.git % pwd /home/(アカウント名)/repository/versions.git
4.更新情報のみを持つ「ベアリポジトリ」として初期化する。
% git init --bare --shared Initialized empty shared Git repository in /home/(アカウント名)/repository/versions.git/
リポジトリをクローンする
作成したベアリポジトリをクローンし、同サーバー内とローカルPC上にリポジトリを作成していきます。
作成するリポジトリの更新情報がクローン元のベアリポジトリで保存・管理され、
クローン同士、更新情報共有出来るようになります。
サーバー内にリポジトリをクローン
ベアリポジトリを作成した同サーバー内に、リポジトリを作成します。
ローカルPCに後ほど作成するリポジトリから見てリモートリポジトリとなり、
サーバー公開ディレクトリのソース等もバージョン管理出来るようになります。
1./home/(アカウント名)/www配下に空のディレクトリを作成する
% mkdir /home/(アカウント名)/www/newapp
2.ベアリポジトリから先ほど作成したディレクトリ内にクローンする
(空のディレクトリでないとクローン出来ません)
% cd /home/(アカウント名)/www/newapp % git clone /home/(アカウント名)/repository/versions.git/ Cloning into 'versions'... warning: You appear to have cloned an empty repository. done.
done.でクローン完了。
クローン元のディレクトリから.git拡張子を除いた名前のディレクトリ(versions)が作成されており、
この配下がgitバージョン管理の対象となります。
(gitが存在している)
% ls -a versions/ . .. .git
git remote -v コマンドで作成したクローンがGithubリポジトリへ紐づいている事が確認できる。
% cd /home/(アカウント名)/www/newapp/versions/ % git remote -v origin git@github.com:(githubアカウント名)/(githubリポジトリ名).git (fetch) origin git@github.com:(githubアカウント名)/(githubリポジトリ名).git (push)
ローカル環境にクローンする
環境:Mac 10.13.6、 Sourcetree 2.7
ローカル環境にローカルリポジトリとしてクローンを作成します。
gitクライアントソフトのSourcetreeを使用します。
Sourcetreeメニューからファイル > 新規 > URLからクローンを選択
ソースURLの箇所へ通信方式をsshにして、アカウント名、さくらのレンタルサーバーのドメイン、作成したベアリポジトリのパスを指定します。
ssh://(アカウント名)@(アカウント名).sakura.ne.jp/home/(アカウント名)/repository/versions.git
クローンをクリックするとローカルで指定した箇所にリポジトリが作成されます。
バージョン管理の検証
クローン作成したリポジトリ(ローカル&リモート)同士でバージョン共有を行えるか確認します。
ローカルリポジトリから変更を加える
妥当なファイルを追加してコミット
(Sourcetree)
コミットが完了したら、サーバーのリモートリポジトリを更新してみます。(pullする)
リモートリポジトリから変更をプルする
サーバーへログインして、リモートリポジトリへ移動
% cd www/newapp/versions/ % pwd /home/(アカウント名)/www/newapp/versions
コマンド git pull で最新のバージョンに更新
% git pull remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From /home/(アカウント名)/repository/versions * [new branch] master -> origin/master % ls index.php %
ローカルでの変更がリモートへも反映されています。
次にリモートからも変更を加えてみます。
リモートリポジトリから変更を加える
リモートリポジトリ内で妥当なファイルを作成
% touch style.css % ls index.php style.css
git add 変更をステージング
% git add .
git commit 変更をコミット
% git commit -m "style.css add"
git push 変更をプッシュ
done. を表示、masterブランチ(本流)へプッシュが成功しているのがわかる。
% git push origin master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 8 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 296 bytes | 296.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To /home/(アカウント名)/repository/versions.git/ 5e8c8ac..2112b76 master -> master
ローカルリポジトリから変更をプルする
リモートからコミット、プッシュした変更内容をローカルリポジトリへ反映。
Sourcetreeメニューから、フェッチ > リモートから全て取得する
リモートでコミットした内容がわかる(メッセージも反映されている)
プル実行で、ローカルリポジトリを更新する。