サイト移転のお知らせ

しばらくブログお休みしていましたが、こちらに移転しました。よろしければこちらへどうぞ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

さくらインターネットのサーバにgitリポジトリを置く

 さくらインターネットのサーバ(スタンダードプラン)をgitサーバにする手順の覚え書きです。gitサーバにするというのは表現としてちょっと正しくないかもしれませんが、要はgitリポジトリをインターネット上に置くということです。
 以前は自宅にLinuxサーバにgitリポジトリを置いてソースコードを管理していたのですが、例の大地震の時に棚の上に置いてあったLinuxサーバは見事にクラッシュしてしまいました。まぁ、ノートPCにソースコードはありましたし、もっと大きな被害にあわれている方に比べればちっぽけな被害なのは言うまでもありませんが、それ以来、外部にgitリポジトリを置くようになりました。
 やってみると、自宅にサーバを常時起動させずにいつでもどこからでもgitにアクセスできるというのは意外と便利なものです。クラウドでソース管理しているって無意味な自慢もできます。いや、自慢にはならんですね(笑)。

 ちなみに、さくらのサーバにはデフォルトではgitは入っていないので、インストールしていない場合はまずgitをインストールする必要があります。gitをインストールする手順はこちら「さくらインターネットにgitをインストールする」をご参考に。

 では、詳細手順です。

 リモートサーバ(さくらインターネット)の"~/repos"をgitリポジトリ置き場とする前提で、この下にTestProjectという名前でリポジトリを作る手順を説明します。リモートのユーザ名は"user"としています。

 まずは、リモートサーバにsshでログインし、共有用のリポジトリを作成。
$ git init --bare ~/repos/TestProject.git
Initialized empty Git repository in /home/user/repos/TestProject.git/


 これで空の管理用のリポジトリができました。
 次に、gitコマンドを配置した~/local/binにパスを通すためににちょいと細工します。
 通常SSHでログインする場合には.bash_profileや.bashrcが読まれますが、sshでgitリポジトリにアクセスする場合にはこれらの設定が読まれないようで、~/local/binにパスが通っていないためにエラーとなってしまいます。
 ですが、~/binにはパスが通っているようなので、
ln -s ~/local/bin ~/bin

としておきます(もっとスマートな方法があるかと思いますが...)
 リモートでの作業はこれで終わりです。続いて、ローカルに作業用のリポジトリを作ります。とこか適当な場所で
$ mkdir TestProject
$ cd TestProject/
$ git init
Initialized empty Git repository in /Users/user/Documents/workspace/TestProject/.git/
$ ls -la
total 0
drwxr-xr-x 3 user staff 102 5 16 15:28 .
drwxr-xr-x 7 user staff 238 5 16 15:28 ..
drwxr-xr-x 10 user staff 340 5 16 15:28 .git


 これで.gitディレクトリが作られます。この中のconfigを見るとまだリモートサーバの情報はありません。
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true


 ローカルのリポジトリにリモートサーバをoriginという名前で追加します。
$ git remote add origin ssh://user@user.sakura.ne.jp/home/user/repos/TestProject.git
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = ssh://user@user.sakura.ne.jp/home/user/repos/TestProject.git
fetch = +refs/heads/*:refs/remotes/origin/*


 コマンドの構文は
  git remote add origin ssh://[ユーザ名]@[ホスト名][リポジトリのパス]
 です。
 .git/configを見るとリモートのリポジトリの情報が登録されているのが分かります。

 試しにREADMEファイルを登録してリモートにpushします。パスワードが聞かれるので、SSHでログインするときのパスワードを入力してください。
$ touch README
$ git add .
$ git commit -m "add README"
$ git push origin master
user@user.sakura.ne.jp's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://user@user.sakura.ne.jp/home/user/repos/TestProject.git
* [new branch] master -> master


 これでリモートにREADMEファイルが登録されました。

 ローカルのリポジトリを削除して新たにリモートのリポジトリから取得してみます。
$ ls
TestProject
$ rm -rf TestProject/
$ git clone ssh://user@user.sakura.ne.jp/home/user/repos/TestProject.git
Cloning into 'TestProject'...
user@user.sakura.ne.jp's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
$ ls
TestProject
$ ls TestProject/
README


 ちゃんとファイルが取得できました。なお、リモートのリポジトリが空のままでcloneするとエラーになるのでご注意を。
関連記事
スポンサーサイト

テーマ : サーバ
ジャンル : コンピュータ

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

まとめtyaiました【さくらインターネットのサーバにgitリポジトリを置く】

 さくらインターネットのサーバ(スタンダードプラン)をgitサーバにする手順の覚え書きです。gitサーバにするというのは表現としてちょっと正しくないかもしれませんが、要はgitリポ...

コメントの投稿

非公開コメント

サイト内検索
プロフィール

Author:imxs

Androidアプリ開発などを行っているimxsの開発者です。気になることを調べてメモって行きます。ほとんどの人にはどうでもいい内容でも、広い世の中一人くらいは同じ疑問を持った奇妙な人がいることを信じつつ。暖かい目で見守ってやってください。
imxsの開発者ブログは移転しました。よろしければこちらへどうぞ。

カテゴリ
最新記事
リンク
RSSリンクの表示
最新コメント
最新トラックバック
FC2カウンター
アクセスランキング
[ジャンルランキング]
携帯電話・PHS
105位
アクセスランキングを見る>>

[サブジャンルランキング]
Android(Google)
28位
アクセスランキングを見る>>
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。