Ubuntu 10.04.4 LTSとgitoliteとσ(゚∀゚ )オレ 後編

続いてクライアント機に戻る。
管理用のgitリポジトリをcloneして来なければいけないのだが、
肝心のwindows用のgitが入ってなかった(ノ∀`)
msysgitというのを落として来た。
基本的にほとんどデフォルトでインストールしたかな。
「Adjusting your PATH environment」のところだけ
“Run Git from the Windows Command Prompt”に変更したような。

で、コマンドプロンプトから

git clone gituser@サーバのホスト名:gitolite-admin

と打つ。

ssh: connect to host サーバのホスト名 port 22: Bad file number

というようなエラーが返ってきた(´・ω・`)
ああ、そういえばsshのportを変えていたっけ…
どうすればポート番号を変えられるのかと思いググる。

ドキュメントとかだと

git clone ssh://gituser@サーバのホスト名:ポート番号/gitolite-admin

で大丈夫っていう風に書かれてるんだけども、どうもうまくいかない。

ドキュメントや他のサイトをよくよく読んでみると
.sshの下にconfigというファイルを作って

host エイリアス名(この例ではgitolite)
user ユーザー名(この例ではgituser)
port ポート番号(実際のsshのポート番号)
hostname サーバのホスト名
identityfile C:\Users\ユーザー名\.ssh\秘密鍵名(この例ではgituser)
(↑identityfileは通常だとこのパスで良い筈。要は秘密鍵へのパス。)

といった感じの内容を書いて、
コマンドプロンプトで

git clone gitolite:gitolite-admin

と打つとうまく行くと書いてある……書いてあるが

Permission denied (publickey)

というエラーが返ってきてうまくいかない(´・ω・`)

ちなみに関係ないが

no address associated with name

というエラーが返ってきたらそれはコマンド内で
エイリアス名を打ち間違えてる可能性が高い。

何度やってもうまく行かないのでcivIIIをやって現実逃避をするヽ( ・∀・)ノ


数時間後我に返り、再び参考にしたページを眺める。
そしてあることに気づく。

[git] gitoliteのインストールの一番下……

ハマりポイント
ssh接続ユーザーをsshd_configで制限していたため、作業マシンからsshができなくてハマりました。以下のように変更します。

 
( ゚Д゚)ハッ 急いでサーバのsshd_configを確認した

sudo vi /etc/ssh/sshd_config

 
AllowUsers使ってたわ… _| ̄|○

AllowUsersにgituserを追加する。
sshdを再起動するだけでも良かったのかもしれないが、
サーバそのものを再起動する。

クライアント機のコマンドプロンプトを起動し直し再び

git clone gitolite:gitolite-admin

を打つ。またエラー。ちょっとしてから再び打つ。

通った…__◯_


ユーザーの作成~git push
ここからはついでというか、実際にgit push出来るかどうかの実験。

  1. 公開鍵と秘密鍵を作成。
  2. 公開鍵を以下のフォルダへコピー。
    C:\Users\ユーザー名\gitolite-admin\keydir
  3. 設定ファイルを開く。
    C:\Users\ユーザー名\gitolite-admin\conf\gitolite.conf

    (confのファイル名は固定かエイリアス名由来か不明)

  4. confファイルに以下のように値を追加。
    repo gitolite-admin
        RW+     =   gituser_rsa
    
    repo testing
        RW+     =   @all
        RW+     =   秘密鍵名

    (よくよく考えてみると上に@allとあるので意味がない(ノ∀`)
    だから3と4はtestingに触る分には必要ないw)

  5. この辺から記憶が曖昧に(ノ∀`)
    git add .
    git commit -m "test"
    git push gitolite:gitolite-admin

    したんだっけかな?

  6. 任意のフォルダ内で
    git clone gitolite:testing
  7. cloneしたtestingリポジトリ内にtest.txtを作成。
  8. test.txtをadd->commit->pushした。
    git add . (git add test.txtだったかな?)
    git commit -m "test"
    git push origin master
  9. サーバ上のtestingリポジトリ内で
    ls -la

    してobjectsフォルダ内が更新されていることを確認。


と感じでUbuntu 10.04.4 LTS – Windows7間でgitoliteを使えるようにした。
実際の環境構築やら実験やらこのエントリを書くのに凄く時間をかけてしまった__◯_

ちなみにubuntu 11.10以降くらいならこんな苦労をしないでも

sudo aptitude install gitolite

で入るらしいよ(´・ω・`) ディストリアップグレードシタクナカッタンヤ

まあそんなことよりも問題としたいことは…
 
 
 
 
 
σ(゚∀゚ )オレ一人が使うのにgitoliteって必要だったんだろうかということだ( ;・´ω・`) トチュウデキヅイテタケドアトモドリデキナカッタンヤ


※2014/6/14追記
※毎回使い方を忘れてしまう俺氏の為の追記(“・ω・゙) ドウシテモワスレテシマウンヤ

  1. ローカルリポジトリ用のフォルダを作成。
  2. 保存したいプロジェクトのフォルダ、ファイルをそこへ移動。(ワークスペース内のフォルダをそのままローカルリポジトリにする場合は1,2の作業は必要ない)
  3. コマンドプロンプトで対象フォルダへ移動して、
    git init
    git add .
    git commit -m "任意のメッセージ"
    
  4. gitolite-admin\confフォルダ以下のconfファイルにレポジトリを追加。
  5. コマンドプロンプトでgitolite-adminフォルダに移動して、
    git push origin master
    

    originはgitolite-admin\.git\configファイルで設定していない場合は
    直で指定しなければならない。

  6. ※2015/3/1追記
    ※追記していたにも関わらずまた使い方を忘れてしまった俺氏の為の追記(“・ω・゙)

    confファイルにレポジトリを追加した後にgitolite-adminをcommitして
    git pushするとサーバ側にレポジトリが自動生成されるんやで->俺氏

    commitに関しては何故かコマンドプロンプト上でコミットメッセージを
    入れようとしたらvimが入力を一切受け付けなくなったから強制終了して、
    エクスプローラでgitolite-adminのフォルダを右クリックしてコンテクスト
    メニューからgit commit toolを選択して適当にメッセージを入れて
    コミットしたんやで、覚えといてや->俺氏

この辺のことをきちんと全部書き直したい… (ヽ’ω`)