最終更新:ID:Fms+etbTwA 2011年01月23日(日) 11:16:40履歴
主にコピペ
http://techno-st.net/2009/10/29/git.html
http://techno-st.net/2009/10/29/git.html
まず、サーバーに git のリポジトリを作成しましょう。 僕は、git というユーザーを作って ~git/repos に置くことにしました。 /var/repos とかにあるのもありかもしれません。 まあ、置き場所とかユーザーはご自由にどうぞ。 んで、慣例でリモートリポジトリのディレクトリは "hogehoge.git" なディレクトリで作るらしい。 たとえば、hogehoge というプロジェクトのリポジトリを作る場合 $ cd ~git/repos $ mkdir hogehoge.git $ cd hogehoge.git $ git init --bare みたいな流れで。 --bare は見慣れないかもしれないけど、これは bare リポジトリを作るって意味で、普通 .git の下にある管理情報とかのファイルが、そのディレクトリに展開される。 なんでかって、そもそもリモートリポジトリに、編集するためのファイルはいらないから、管理情報だけでいい。 で、あとは、ローカルにあるリポジトリを push します。 まずは、remote を登録しなければいけないので、add します。 $ cd project $ git remote add origin git@git.example.com:repos/hogehoge.git $ git push origin master これで push できます。 接続には、デフォルトでは ssh を使うようになってます。 鍵とか、パスワードとか、認証がかかりますのでご注意を。 って、あっけなさすぎる... 実は、git は ssh 使えればこんなに簡単にリモートリポジトリを構築できてしまうんです。 しかし、今回はこれでは終わらない。 ssh 使いたくないので、git:// でつなぎたいと思います。 (使えないわけではないけど、使いづらいある事情がうちのサーバーにはある) なので、git-daemon が必要です。 Debian の場合、aptitude から簡単に git-daemon 自体は導入できます。 # aptitude install git-daemon-run で ok です。 "/etc/sv/git-daemon/run" をいじります。 いじるのは、最後の1行だけで exec git-daemon --verbose --base-path=/home/git/repos --export-all --enable=receive-pack --user=git 僕はこんな感じにしてますが、正直 "非推薦" です。 * --base-path リポジトリがある場所を指定します。 * --export-all 誰でも、どのリポジトリも git clone できるようにします。 * --enable=receive-pack 誰でも、git push できるようにします。 * --user=git git ユーザーで daemon を動かします。 と、まあ、ご利用は計画的に。 ちなみに、git プロトコルを使って push するには、こうするしかありませんので、しょうがない。 それと、--user を指定しないと、root で動くようになっていて、push したときに所有者が root になってしまうので、こうしてます。 その他の詳しいオプションなどは、`man git-daemon` をどうぞ。 git-daemon の起動、終了は # sv stop git-daemon # sv start git-daemon な感じです。 git プロトコルのポート番号は、9418/tcp を使うようです。 で、git:// を使って push するには $ git remote add origin git://git.example.com/hogehoge.git $ git push origin master これで完璧。 ここまでやれば $ git clone git@git.example.com:repos/hogehoge.git #ssh $ git clone git://git.example.com/hogehoge.git #git どちらでもできるようになる。 下なら、誰でも clone できる。(認証必要なし
http://www.func09.com/wordpress/archives/402
というエラーに対する方法
とのこと
fatal: The remote end hung up unexpectedly
というエラーに対する方法
git-daemonの起動時にreceive-packを有効にしておけば良さそう。
git-daemon --verbose --export-all --base-path=/var/git --enable=receive-pack &
とのこと
コメントをかく