Xserverにgitのリモートリポジトリを作成してSourceTreeで接続

こんにちは。

Githubを使用せずにXserverでgitリポジトリを作成して、開発環境と本番環境のソース管理をしたいと思います。以下のような図での運用を目指して作成します。

mami
念のために、、この図は私の管理しやすい形を検討した結果なので、推奨されているものではありません。プロジェクト体制によって色々変わると思います。

ついでにgitコマンドが苦手(というかコマンド全般苦手…)なのでSourceTreeを使ってXserverのGitリポジトリに接続してみたいと思います。

手順は以下の通りです。

手順
  1. XserverでSSH接続用鍵の取得
  2. SourceTreeでSSH接続(Windows)
  3. SourceTreeでSSH接続(Mac)
  4. Xserverにリモートリポジトリ(Bare)を作成
  5. SourceTreeでローカルにリポジトリをclone

①XserverでSSH接続用鍵の取得

XServerのサーバーパネルにログインして、「SSH設定」をクリックします。

「SSH設定」をONにします。

パスフレーズを入力して、確認画面に進みます。

「生成します」

秘密鍵のダウンロードが始まります。

②SourceTreeでSSH接続(Windows)

ダウンロードした秘密鍵をSourceTreeでインポートしていきます。
SourceTreeで[ツール]-[SSHキーの作成/インポート…]を選択します。

[Key]-[SSH-2 RSA Key]を選択します。

[Load]を選択して、先ほどダウンロードした秘密鍵を選択します。(この時、パスフレーズの入力もします)

インポート成功と「PuTTY’s」フォーマットでキーを保存してね、というメッセージが表示されます。

言われるがまま、[Save Private Key]を選択して、保存します。

すると、Windows10の右下にあるインジケーター領域にPageantというPuTTY認証エージェントが起動します。これはサーバーに接続しているときにいつでも使用できるように、秘密キーをメモリに保持しています。

これでいったんSourceTree作業は終わります。

②SourceTreeでSSH接続(Mac) 22/8/17追記

MacとWindowsでSourceTreeのメニュー構成が色々違ったので戸惑いました。
ダウンロードした秘密鍵を以下に置きます。

~/.ssh/XXXXX.key

ターミナルで以下のコマンドを実行すると、秘密鍵が登録されます。

$ ssh-add ~/.ssh/XXXXX.key

③Xserverにリモートリポジトリ(Bare)を作成

ではでは、ようやく、最初にも出したこの図で言うと真ん中の黒い部分を作成します。

XserverにSSH接続します。Bareリポジトリはフォルダ名に.gitを付ける運用になっているそうですので、非公開ディレクトリにXXXXX.gitフォルダを作成して移動してから、「git init –bare –shared」します。

$ cd git_repo/XXXXX.git
$ git init --bare --shared

④SourceTreeでローカルにリポジトリをclone

ローカルのSourceTreeに戻ります。まずは先ほど作成したXserverのリモートリポジトリ(Bare)に接続します。
cloneを選択して、以下を入力していきます。

Xserverのリモートリポジトリの場合はURLは以下のように指定します。
ssh://サーバーID@ホスト名:10022/home/XXXXX/XXXXX/git_repos/XXXXX.git

ちなみに、URLを入力した時に「SSHエージェント(Pageant)は起動していますが、接続に失敗しました」という謎のメッセージが出まして、暫く接続出来ませんでした。結局、「②SourceTreeでSSH接続」で作成したppkを削除してSourceTreeを再起動して「②SourceTreeでSSH接続」をやり直したら解決しました。。ちょっと原因不明ですが、参考になれば幸いです。

2 件のコメント

  • 記事冒頭で
    「念のために、、この図は私の管理しやすい形を検討した結果なので、推奨されているものではありません。」
    とありますが推奨されている構成はどのようなものですか?

  • コメントありがとうございます。
    ご期待の回答ではないですが、「推奨されているものではありません」→「プロジェクトによって色々変わると思います」が正しいニュアンスかもしれません。今回の場合は私一人の開発なのでノンベアだけで良かったかも、とか、本当ならテスト環境も用意して、とか考えていたような気もします。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)