gitサーバのお引越し
テスト用に構築したgitサーバから、実運用gitサーバへのレポジトリの引っ越しをしたので備忘録的に書いておく。
前回テスト用に構築したgitサーバ備忘録的はこちら
二回目なので気付いた事
1, gitのバージョンは、別に最新じゃなくてもいいかな?
前回はソースからビルドしていたけど、最初から入っている1.7でも良い気もする
2, git initだけだとダメだった
ローカルレポジトリだと、git initだけでOKなのだけど、gitサーバとして複数ユーザで使うリモートレポジトリの場合は –bare –sharedのオプションは必須!
–sharedは、共有そのまんまなので分かるけど
–bareは何?と思って調べてみたら、.gitフォルダの内容だけになって作業ディレクトリは生成できなくするらしい。
でも、そうすると作業ディレクトリの内容ってどこに保存されているの?と思って調べてみたら、.git/objects/の中に、zlib圧縮とSHA1ハッシュを使ってblobとtreeと言った形で保存されているらしい。
http://qiita.com/nkshigeru/items/eb2b6f758c2707757738
3, レポジトリのディレクトリ名の最後に.gitと付けないと、ダメだった
test.gitみたいなディレクトリ名にしないと、SourceTreeではgitレポジトリではありません!とか言われる…。
–bareだと.gitフォルダがないので分かるが、慣習という話だったけど強制なの?
4, ドメイン(IPアドレス)が違っていても、同じレポジトリ名はダメ?
SourceTreeのデフォルトだと、ローカルレポジトリがC:\Users\ユーザ名\Documents\レポジトリ名で生成されるので、変更したけどエラーになった。
Unable to open connection:
Network error: Cannot assign requested addressfatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
エラー終了しました。エラーの内容は上記をご覧ください。
アクセス権っぽいエラーなので、最初からやり直してみたらOKだった。
1 2 3 4 5 6 7 8 9 10 |
groupadd git useradd user1 usermod -G git user1 mkdir a.git cd a.git git init --bare --shared cd ../ chgrp -R git a.git/ chmod -R 775 a.git |
と思ったら、本番のレポジトリ名にしたら同じエラー!なんでやねん!と思ったらアンダーバー(_)がダメだったらしい…。ホスト名と同じ発想なのね。
ssh://user1@test.com:/var/lib/git/public_git/stg_a.git/
sshプロトコルで接続情報を持っているので、ホスト名の命名規約と同じと言われれば、その通りなんだけど、このエラー文じゃ普通気付かないよ!
英数字とハイフンだけOKらしい