Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?

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

対象者

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

環境

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

XSEVER準備

まずはXSEVERに公開鍵を登録。
事前に生成してある秘密鍵にはパスワードを設定してあります。
(参考: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を変更できる

以上ですmm

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?