研究室の余っているPCをLAN向けのサーバにするためにごにょごにょ。Debianの入れ直しとかしてました。
なぜか5回に一回くらいしか起動しなくていらいら。なぜかSambaがうまく動かなくてむきー。(Sambaは未だに動かない。もう入れなくても良いと思っているけど、大人の事情というやつだ)
で、gitのリポジトリも作ってみた。途中、Debianさんのgit-coreパッケージのバージョンがひくいのでまたつまってしまった。進歩してない。
さて、方法なんだけど、個人的に使う場合はvery簡単。
今回は'gitmoe'というユーザ専用の'/home/gitmoe/my_repos.git'というレポジトリを作ります。
gitのバージョンは1.5系列のみです。1.4系だとダメです。gitのインターフェースが大幅に変わってます。(例:[1.5.*] git init -> [1.4.*] git init-db)
ちなみに、プロンプトはわかりやすいように、[remote]、[local]をつけています。リモートホストのホスト名を仮にgitmoe.example.netとします。
まずリモートで、
[remote] $ GIT_DIR=/home/gitmoe/my_repos.git git init
はい。これでリモート専用のリポジトリの完成です。3分クッキングより簡単。別に完成品が用意されているわけでもありません。
これはgithubでリポジトリを作った状態と同じです。あとはローカルのリポジトリを作ってpushしたらOKです。githubと同じですね。
やりとりはひとまずssh越しにすることにします。
[local] $ mkdir my_repos [local] $ cd my_repos [local] $ git init [local] $ git add . [local] $ git commit -a -m 'initial commit' [local] $ git remote add origin ssh://gitmoe@gitmoe.example.net/home/gitmoe/my_repos.git [local] $ git push origin master
という具合にpushできます。次は研究室別館(そんなものがあるのか。うらやましすぎる!)に置いてあるlocal2からcloneして作業します。
[local2] $ git clone ssh://gitmoe@gitmoe.example.net/home/gitmoe/my_repos.git [local2] $ cd my_repos [local2] $ vim ultra_excellent_code.rb [local2] $ git add ultra_excellent_code.rb [local2] $ git commit ultra_excellent_code.rb -m 'write ultra excellent code' [local2] $ git push
別館のクーラーが故障で動かなくなったので、本館に戻ってきました。
[local] $ cd my_repos [local] $ git pull [local] $ ls ultra_excellent_code.rb [local] $ vim ultra_excellent_code.rb [local] $ git commit -a -m 'fix excellent bug' [local] $ git push
と言うわけで今日はもう遅いので、明日は他のメンバーと共同で使えるリポジトリを作るぞと心に決めてgitmoeさんは帰宅したのでありました。
以上。すべて手打ちなので間違ってたり、タイプミスがあるかもしれません。雰囲気を掴んでいただければと思います。
まとめ
参考文献
Software Design 2008 4月号 第2特集:Git 徹底活用ガイド