SourceTreeとは何かというとGitの操作を簡単にできるようにするツールのことです。
今回はXserver上にあるファイルをSourceTreeで管理したいなと思い、SSHを使って連携をできるようにするまでの手順になります。
当記事では以下の2つは準備済みという前提で書いています。
1. Xserverの管理パネルで鍵ペアを作成、秘密鍵をダウンロード(以下ページで解説されています)
2. サーバー側にGitがインストールされていること(以下記事の真ん中らへんで解説しています。)
今回はXserverにLaravelをインストールしましたのでその時の備忘録としてやり方を公開したいと思います。 SSH接続が必要になりますが、私はTeraTermを使って接続しています。 X[…]
XSERVERとは
Xserverとはレンタルサーバーの一つで、当ブログでも使用されております。主な利点としては以下があげられます。
- 暗号化通信のSSL設定が無料でできる
- サイトの読み込みが高速にできる
- サーバーにSSH接続ができる
- データの自動バックアップがある
こんな風にサイトを運営するにはうれしい機能が揃っています。
使える言語や機能なんかも以下のページにまとめられています。
プログラム言語・コマンドパス|レンタルサーバー【エックスサーバー】
検討している方はXserverの申し込みページからどうぞ
サーバー側でGit管理を開始する
まず、サーバー側でGitでバージョン管理を始める必要があります。
Gitでバージョン管理したいディレクトリに移動します。今回は~/sample/projectsにあるとしましょう。
$ cd ~/sample/projects
# Gitでバージョン管理したいディレクトリに移動
そこで、以下コマンドを打ち込めばバージョン管理が開始されます。
$ git init
以下コマンドで.gitというフォルダができていることを確認しましょう。
$ ls -a
この時点ではファイルは登録されておらず、まだ管理は始まっていませんので、管理の対象にしてあげます。
$ git add .
$ git status
$ git commit -m "first commit"
次に非公開ディレクトリにベアリポジトリを作成します。ベアリポジトリとは管理用の情報のみを持つリポジトリになります。作成しないとローカルとサーバー側に差分が生じてしまう可能性があるためGitでは作成することが推奨されています。
今回は~/sample/projects.gitというディレクトリをベアリポジトリにします。(.gitとついていますが、拡張子ではありません。ベアリポジトリは慣習的に.gitとついたフォルダにするそうです。)
$ cd ~/sample
$ git clone --bare --shared ~/sample/projects projects.git
これで~/sampleにprojects.gitというディレクトリができているはずです。
これだけでもOKですが、このままだとローカルでの変更を適応するために~/sample/projectsに移動してプルしないといけません。
これは面倒なので、自動でできるようにしてしまいましょう。
自動でできるようにするにはまず、ベアリポジトリ内のhooksに移動し、ファイルを作成します。
$ cd ~/sample/projects.git/hooks
では、ファイルを作成します。viエディタでpost-receiveというファイルを作成します。
$ vi post-receive
内容は以下のようにしましょう。
#!/bin/sh
#
cd ~/sample/projects
git --git-dir=.git pull ~/sample/projects.git
これで保存すれば自動的にプルされるようになり、ローカルでの変更が適応されるようになります。
最後にpost-receiveに実行権限を与えます。
$ chmod +x post-receive
これにてサーバー側の準備は終了です。
SourceTreeをインストール
では、ローカルの自分のパソコンにSourceTreeのインストールを進めます。
Windows版とMac版の両方があります。
SourceTreeは以下のサイトからダウンロードする事ができます。
https://ja.atlassian.com/software/sourcetree/overview/
さっそくダウンロードしたSourceTreeを開いてみましょう。まず登録画面が出てきます。アカウントが必要なので、持っていない場合は「Create one for free」を選択しましょう。GoogleアカウントがあればGoogleでログインができるみたいなので登録は必要ないかもしれません。
メールアドレス、ユーザー名、パスワードを入力し、「Agree and sign up」を選択します。
これでアカウントが作成されましたので、次はサインインします。「Bitbucket」を選択します。
先ほどのアカウントでログインしましょう。
無事ログインできれば以下の画面が出てくるはずです。
インストール画面に移りますが、Mercurialは使いませんのでインストールしなくても大丈夫です。
インストールが終わるまで待ちましょう。
最後にGitで使うユーザー名とメールアドレスを登録します。
この後SSHキーを読み込みますかと出るかもしれませんが、後でもできるのでいいえと選択しておきます。
これにて、インストールは完了です。
SourceTree側の設定
では、SourceTreeがインストールできたので、Xserver側と連携するための設定を行っていきましょう。
1. SSHの設定をする
まずはじめにXserver上のフォルダにアクセスできるようにSSH接続する必要があります。
最初にツール→SSHキーの作成/インポートを選択します。
次にPutty Key Generatorというのが出てきますのでLoadを選択します。
するとファイルを選択する画面になりますので、Xserverで生成した秘密鍵(サーバーID.key)を選択してください。
パスワードの入力を求められますので、Xserverで設定したパスワードを入れます。
Keyを開き、SSH-2 RSA Keyを選択。
また、ParametersをRSAにしておきましょう。
OKであればSave private keyでわかりやすい場所(デスクトップとか)に保存しておきましょう。
鍵が生成できたので、接続をします。ツール→SSHエージェントを起動を選択。
するとPageantというものが起動します。タスクバーを見てみるとPageantというものが存在していますので、右クリックし、Add Keyを選択。
ファイルを選択する画面になりますので、先程PuTTYで作成したキーを選択します。パスワードも求められるので、Xserverで設定したパスワードを入力します。
これで接続の部分は終わりになります。
2. プロジェクトをクローンする
プロジェクトをローカル環境にクローンしてみたいと思います。
タブの下のメニューからCloneを選択します。すると、以下の画面が出てきます。
入力は以下のようにします。
- 元のパス:ssh://サーバーID@svXXXX.xserver.jp:10022/home/サーバーID/クローンしたいディレクトリへのパス(ベアリポジトリを選択)
- 保存先のパス:ローカルの保存したい場所(デスクトップとか)
- 名前:ローカルのフォルダの名前
- Local Folder:[ルート]
※エラーになるときはSourceTreeを再起動してみたり公開鍵がサーバーに保存されているか確認してみてください。
接続ができれば以下のような画面が出るはずです。
これにて接続は完了し、連携された状態になります。ローカルでの変更をXserer上のリポジトリにプッシュしたりXserver側の変更をプルできるようになりました。
最後に
Xserver上でGitで管理しているプロジェクトをSource Treeと連携する方法を紹介しました。
Source Treeを使えばGUIでGitを操作できるのでコマンド操作になれていない人は非常に楽になるかと思います。
では、お疲れさまでした!