LoginSignup
3
8

More than 1 year has passed since last update.

Gitのリモートリポジトリをレンタルサーバーでプライベートリポジトリにする

Last updated at Posted at 2019-07-01

対象者

Gitホスティングサービス(リモートリポジトリ)にお金を掛けたく無い人
Gitホスティングサービス選びとかめんどくさい人
正式なサービスじゃ無いからdeploy先で良いや。な人

環境

MacOSX Mojave
ターミナル
https://www.xserver.ne.jp/
レンタルサーバ(XSERVER契約済み)
(参考:https://zudoh.com/misc/create-git-private-repository-on-rental-server
上記でうまくいかなかったので、調べました。

XSERVER準備

まずはXSERVERに公開鍵を登録。
事前に生成してある秘密鍵にはパスワードを設定してあります。
(参考:https://www.xserver.ne.jp/manual/man_server_ssh.php

以下の方法でsshコマンドでXSEVERに接続できるか確認します。

$ ssh -i ~/.ssh/id_rsa サーバーID@サーバーID.xsrv.jp -p 10022
$ Enter passphrase for key '/Users/user/.ssh/id_rsa':
$ 秘密鍵パスワードを入力
$ [サーバーID@svxxxx ~]$ #ログインできたのを確認

Server側でgitホスティングの準備

[サーバーID@xxxxxx ~]$ mkdir ./tmp/git-remote
[サーバーID@xxxxxx ~]$ cd ./tmp/git-remote
[サーバーID@xxxxxx git-remote]$ git init --bare
[サーバーID@xxxxxx git-remote]$ pwd
/home/サーバーID/tmp/git-remote

Server側の設定はここまで。

ローカル側の設定

対象のディレクトリで

$ git init
$ git add -A
$ git commit -m "first commit"

これでローカルにmasterブランチが作成されました。
確認方法は$ git branchmasterと出ます。

ではServerとローカルのmasterブランチを紐付ける準備をします。

$ vi ~/.ssh/config

上記でid_rsaの配置箇所などを定義して以下のように保存します。

~/.ssh/config
Host xserver
  HostName  サーバーID.xsrv.jp
  Port      10022
  User      サーバーID
  IdentityFile  ~/.ssh/id_rsa

次にgitのremoteを指定してあげます。
home/サーバーID/tmp/git-remoteの部分はServer側の絶対パスです。

$ git remote add origin ssh://xserver/home/サーバーID/tmp/git-remote

準備が完了したので、以下のコマンドでremotemasterpushします。

$ git push origin master
Enter passphrase for key '/Users/user/.ssh/id_rsa': #秘密鍵のパスワード聞かれます

うまくいくと、

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 1.55 KiB | 1.55 MiB/s, done.
Total 7 (delta 0), reused 0 (delta 0)
To ssh://xserver/home/サーバーID/tmp/git-remote
 * [new branch]      master -> master

作業完了。

###試しにgit pullしてみる

$ git pull origin master
Enter passphrase for key '/Users/user/.ssh/id_rsa': 
From ssh://xserver/サーバーID/tmp/git-remote
 * branch            master     -> FETCH_HEAD
Already up to date.

成功すると上記の様な感じ。(リモートリポジトリ作成までを目標としてるので、コマンドの省略やパスワードの省略手順については省略mm)

微妙にハマったところ

設定が間違えていたりすると、以下のエラーが出ることがある場合があります。
(参考:https://qiita.com/KTakata/items/3e5073072e037c289a3a

fatal: No such remote 'origin'  
fatal: remote origin already exists.

そんな時は以下のコマンドでremoteのブランチをremoveできます。

$ git remote rm origin

removeしてから、

$ git remote add origin ssh://xserver/home/サーバーID/tmp/git-remote

にて再設定できます。

今回とは関係ないですが、リモートホスト情報を変更することも可能です。

$ git remote -v #remote urlの情報を確認できる
$ git remote set-url origin {new url}  #remote urlを変更できる

以上です。

3
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
8