読者です 読者をやめる 読者になる 読者になる

肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

Git関連ツール開発中に手元で remote 関連の動作テスト

Git

いやまあこんなことは、どうでもいいといえばいいのですが、意外と知らない人もいるかも意知れないと思ってメモ。

git-daily の開発とかでよく remote とのやりとりの動作確認とかが必要になるんだけど、そのテスト方法について。いちいち gitosis やら github やらの実際のサーバを用意しなくてもテストはできるんですよ、という話。

適当なリポジトリを用意

$ cd /path/to/tmp
$ mkdir hoge
$ cd hoge
$ git init
$ touch hoge.txt
$ git add hoge.txt
$ git commit -m "first commit"

remote 用のリポジトリを用意

続き。bare リポジトリ作成

$ mkdir ../fuga
$ cd ../fuga
$ git init --bare

remote 追加

hoge に戻って、相対パスで remote の追加&first push。

$ cd ../hoge
$ git remote add origin ../fuga
$ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 231 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To ../fuga
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

あとは適当にリモート操作

pushしたり

$ touch fuga.txt
$ git add fuga.txt
$ git commit -m "add fuga"
[master 263204f] add fuga
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 fuga.txt
$ git push
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Unpacking objects: 100% (3/3), done.
Writing objects: 100% (3/3), 280 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ../fuga
   d3a54c5..263204f  master -> master

clone もできます

$ cd ..
$ ls
fuga  hoge
$ git clone fuga piyo
Cloning into piyo...
done.
$ ls
fuga  hoge  piyo
$ cd piyo
$ git log
commit 263204f294a67959a5978fbe5a862e2c05526e91
Author: Sotaro KARASAWA <sotarok@crocos.co.jp>
Date:   Wed Jul 13 22:22:47 2011 +0900

    add fuga

commit d3a54c5d76851286052d216db0925637460e6f03
Author: Sotaro KARASAWA <sotarok@crocos.co.jp>
Date:   Wed Jul 13 22:16:07 2011 +0900

    first commit

結論

Git は簡単。