いままでMac miniのサーバで作業をしていたが、いちいちvncで作業するのが面倒になってきた。デバグはMacBook Airで作業できるようにする。
参考:Macにgitサーバーを構築してgit://(gitプロトコル)でアクセスできるようにする方法 | Macとかの雑記帳
Mac miniの管理者の部分にgitサーバを用意することにした。
Mac miniの通常ユーザから管理者へはssh admin@localhostでログインする。
gitサーバ構築
上記の参考サイトに従って、gitフォルダを作成。
mini:~ admin$ which git /usr/local/bin/git mini:~ admin$ cd git
続いて先日からいじっているkindairb用のフォルダを作成。
mini:~/git admin$ mkdir kindairb.git
最後に公開用として--bareを付けて初期化。
mini:~/git admin$ cd kindairb.git/ mini:~/git/kindairb.git admin$ git --bare init Initialized empty Git repository in /Users/admin/git/kindairb.git/
作業中のをサーバへ関連づけ
続いて通常ユーザのkindairbを、いま作ったgitサーバへ関連づけ。
mini:~/Ruby/kindairb hoge$ git remote add origin admin@localhost:git/kindairb.git fatal: remote origin already exists.
怒られた…。
mini:~/Ruby/kindairb hoge$ git remote -v origin https://github.com/hitode909/kindairb.git (fetch) origin https://github.com/hitode909/kindairb.git (push)
originが重複しているから怒られたのですね。
ということで別の名前にする。originminiとでもしておく。
mini:~/Ruby/kindairb hoge$ git remote add originmini admin@localhost:git/kindairb.git mini:~/Ruby/kindairb hoge$ git push originmini master /Users/admin/.bashrc: line 3: rbenv: command not found Counting objects: 1064, done. Delta compression using up to 4 threads. Compressing objects: 100% (432/432), done. Writing objects: 100% (1064/1064), 409.62 KiB, done. Total 1064 (delta 561), reused 1054 (delta 553) To admin@localhost:git/kindairb.git * [new branch] master -> master
なぜかエラーがでたけど、ちゃんと動いてそう。
別の場所へclone
mac:Ruby hoge$ git clone admin@mini.riocampos.private:git/kindairb.git Cloning into 'kindairb'... /Users/admin/.bashrc: line 3: rbenv: command not found remote: Counting objects: 1064, done. remote: Compressing objects: 100% (424/424), done. remote: Total 1064 (delta 561), reused 1064 (delta 561) Receiving objects: 100% (1064/1064), 409.79 KiB, done. Resolving deltas: 100% (561/561), done.
あっという間だった。
mac:Ruby hoge$ cd kindairb/ mac:kindairb hoge$ git log commit a91c01d41c91fa3cbddbc272a2d85c7ddffcc3c9 Author: hitode909 <hitode909@gmail.com> Date: Fri Mar 22 21:00:30 2013 +0900 Regenerate gemspec for version 2.3.0 commit 74890b39683f9d9d5234c125d5532341e97971a8 Author: hitode909 <hitode909@gmail.com> Date: Fri Mar 22 21:00:25 2013 +0900 Version bump to 2.3.0 commit c357c18b6cc8d43fd1a9a2823febe77dfc469889 Author: hitode909 <hitode909@gmail.com> Date: Fri Mar 22 21:00:11 2013 +0900 kindai改めndl-dl http://iss.ndl.go.jp/information/2012/ commit 1daed892581aac06c8325ec330c71ea5ee5a428c Author: hitode909 <hitode909@gmail.com> Date: Wed Mar 13 21:06:16 2013 +0900 :
logもちゃんと見れる。
mac:kindairb hoge$ git remote -v origin admin@mini.riocampos.private:git/kindairb.git (fetch) origin admin@mini.riocampos.private:git/kindairb.git (push)
関連しているリモートはoriginになるのね。名前は固有では無いということを了解。
git pushしてみる
分からないままkindairbをちょこちょこいじっているので試しにgit pushしてみる。macから、と言っておきながらサーバの利用者アカウントで作業していた。
開発の時にはmasterではなくSpikeやprototypeと名付けられたブランチを使うべきだ(参考:2011-05-28)とのことなのでriocamposSpikeとしています。
mini:~/Ruby/kindairb/lib/kindai hoge$ git remote -v origin https://github.com/hitode909/kindairb.git (fetch) origin https://github.com/hitode909/kindairb.git (push) originmini admin@localhost:git/kindairb.git (fetch) originmini admin@localhost:git/kindairb.git (push) mini:~/Ruby/kindairb/lib/kindai hoge$ git branch master * riocamposSpike
pushする。
mini:~/Ruby/kindairb/lib/kindai hoge$ git push originmini riocamposSpike Counting objects: 16, done. Delta compression using up to 4 threads. Compressing objects: 100% (11/11), done. Writing objects: 100% (11/11), 1.34 KiB, done. Total 11 (delta 7), reused 0 (delta 0) To admin@localhost:git/kindairb.git * [new branch] riocamposSpike -> riocamposSpike
問題なくうまくいったみたい。
mini:~/Ruby/kindairb/lib/kindai hoge$ git remote show origin originmini mini:~/Ruby/kindairb/lib/kindai hoge$ git remote show originmini * remote originmini Fetch URL: admin@localhost:git/kindairb.git Push URL: admin@localhost:git/kindairb.git HEAD branch: master Remote branches: master tracked riocamposSpike tracked Local refs configured for 'git push': master pushes to master (up to date) riocamposSpike pushes to riocamposSpike (up to date)