さくらのサーバーをsourcetreeで更新する

 htmlやphpを勉強しようと、さくらインターネットのサーバー(スタンダード)をレンタルした僕。右も左もわからず適当にhtml、phpファイルを作成しては実行するというのを繰り返していました。せっかくなのでgit(?)というものを用いてかっこ良く更新してみたいと考えました。というわけで投稿1発目の今回は、さくらのサーバーをsourcetreeを使って更新出来るようにするまでを記事にしてみたいと思います。sourcetreeについては何となく使えることを前提で書きますのでわからない方は調べましょう(僕もたくさん調べました・・・いつか記事にします)。

それでは、分かる範囲で環境を…

  • さくらのレンタルサーバー(スタンダード)
  • sourcetree(1.6.22)
  • git(1.9.3 レンタルサーバーに入ってたっぽい?)
  • windows7のパソコン(何でもいいと思います)
  • サーバーにログインするためにteraterm

 git?sourcetree?なにそれ美味しいの?って人は僕なので、そういう人でもとりあえず動かせるように出来ると思います。

何ができるようになるか?

 更新の履歴みたいのを保存できるようになるので、更新に対してCtrl+Zみたいなことが出来るようになると思います。あと何を変更したかが見やすいのと、sourcetree?ああ、あの美味しいやつね!って言えるようになるなど利点は色々。実用的かどうかはわかりませんが、sourcetreeを食べ物だと思っている僕みたいな人には良い勉強になるかなと思います。

やり方

 とりあえず一通り目を通してからやってみると良いと思います。
1.teratermを使ってサーバーにログインする
 teratermを起動してホスト名ってところにさくらインターネットのドメイン名??を入力します。画像とサイトのURL見てもらえればどれ入力すれば良いかはわかるかと。OKを押してユーザー名、パスワードを入力すると、ログインが出来ると思います。
teratermログイン1teratermにログイン2
2.リポジトリを作成する
 リポジトリって正直よくわからないのですが、要するにファイルの保存場所みたいのを作成します。cdコマンドで適当な位置に移動します。僕の場合は、/home/donatu33/wwwまで移動しました。ここに次のようなコマンドでディレクトリを作成して、謎のコマンドを実行します。

mkdir git       ###gitの部分は好きにして良いです###
cd git
mkdir note.git  ###noteの部分はご自由に。.gitはつけたほうが良いかと。### 
cd note.git/
git init --bare ###初期化コマンドなんでしょうけど詳しくはわかりません。###
###↓こんなの表示されるかと###
###Initialized empty Git repository in /home/donatu33/www/git/note.git/###

3.リポジトリをクローンする
 よくわからない単語が2つ並んで頭が痛くなりますが、コピー見たいのを作成します。先ほど作成したnote.gitのnoteの部分が名前となって、そのディレクトリにファイルが設置されていきますので、それを見越して命名すると良いと思います。クローンする時名前変えれそうだけど気にしない。またまた好きな位置に移動します。僕の場合には、/home/donatu33/wwwに戻りました。そこで、

git clone /home/donatu33/www/git/note.git/

emptyがなんとかって出ると思いますけど大丈夫です。noteというディレクトリが作成されたと思います。
ちなみに・・・

git clone /home/donatu33/www/git/note.git/ test

などとすると名前変更できるっぽいです。
4.sourcetreeの設定
 teratermを一旦最小化して、sourcetreeを起動します。左上の新規/クローンを作成するというところをクリックします。元のパスの部分は、最初に作成した方(適宜読み替えを)
ssh://donatu33@donatu33.sakura.ne.jp/home/donatu33/www/git/note.git
保存先のパスのところをクリックすると、パスワードとか聞かれたりすると思うので各自入力してください。リポジトリタイプに「これはGitリポジトリです」とでれば成功です。でなかったら、何か間違えてそうなのでパスなどを確認してみてください。できたら、クローンをクリックします。
5.サーバーを更新する
 sourcetreeで指定した保存先のパスへ移動し、何かファイルを作成してみてください。僕はtest.txtというファイルにtestと書いて保存しました。sourcetreeでコミットしてプッシュします。
teratermに戻り
/home/donatu33/www/note/へと移動します。そこで次のコマンドを実行します。

git pull

 lsコマンドで確認するとそのディレクトリにtest.txtの姿が・・・!
くぅ~疲れましたwこれにて完結です!と言いたいのは山々ですが、いちいちpullコマンドを実行しないといけないのは不便です。なので、pushされた時に自動でpullをしてくれるように設定します。

6.push時に自動でpullする
 /home/donatu33/www/git/note.git/hooks/に移動し、post-updateという名前のファイルを作成し、以下のように記述します。

#!/bin/sh
cd /home/donatu33/www/note
git --git-dir=.git pull

さらにそのファイルに実行権限を付加します。

chmod a+x post-update

 これでプッシュした時に自動でプルしてくれるようになると思います。ブランチとかいうものを使用したりするとうまくいかないかもしれませんが、masterにプッシュした際にはその情報がプルされてくる・・・と思っています。
僕の場合このpost-updateというファイルを作成してもうまくいきませんでした。同じくうまくいかないという方は、プッシュする際にsourcetreeの端末からgit pushというコマンドを打ってプッシュしてみるとエラー内容などが表示されるかと思います。何がいけなかったかというと、post-updateをwindowsで作成してそれをwinSCPというソフトを使用して設置、実行権限を与えてハイ完成。とやっていたのですが、改行の部分でよくわからない文字が表示されていて、それが原因でそんなディレクトリはないというエラーが出ていました。きっと文字コードとかの設定なんでしょうか・・。なので、できれば

vi post-update

などとして作成すると良いと思います。僕はvimの使い方がわからず文字が消せないという状況になりましたが・・・。
誰かの役に立てたら幸いです。もしわからない事があればコメントしてもらえれば分かる範囲でお答えします。
はじめての記事でこんなに長くなるとは思いませんでした

参考にさせていただいたサイト

Pocket

「さくらのサーバーをsourcetreeで更新する」への3件のフィードバック

  1. teratermを使わないとSourcetree で さくらへアクセスすることはできないのでしょうか

  2. TeraTermを使わなければSourceTreeからさくらVPSを更新することはできないのでしょうか

    1. 正直あまり覚えていないのですが、この記事でやっていることは、レンタルサーバ上にgitのリポジトリを作ってなんやかんやしているということみたいです。
      記事内のnote.gitが要するにgithubにおいてあるリポジトリのような役割を果たしてくれているということになると思います。

      普通にさくらのvpsを更新するだけなら、適当な端末(teratermでもなんでも良いです)でsshしてvps内でコマンド操作すれば更新できます。gitを使うにしてもgithubが無料で使えるはずなので、そちらにリポジトリを作成し必要なファイルをプッシュして、vps上からpullすれば良いかと思います。ただ、この頃の僕はgithub上にプログラムを置いておきたくなかった(誰でも見れるという状況がなんか嫌だった…)ので、同レンタルサーバ上にリポジトリを作成したという感じです(たぶん)。
      回答になっているでしょうか?

コメントを残す

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


*画像認証