対象者
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 branch
でmaster
と出ます。
ではServerとローカルのmasterブランチを紐付ける準備をします。
$ vi ~/.ssh/config
上記でid_rsa
の配置箇所などを定義して以下のように保存します。
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
準備が完了したので、以下のコマンドでremote
にmaster
をpush
します。
$ 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を変更できる
以上です。