会社と自宅で作業しているとソースコード同期するに、いちいちサーバーから取ってきてとかっていうのやってたのですが、めんどくさいなと思って折角なのでGitサーバー立てることにした時の覚書。

環境

OS

CentOS5.10

目次

  1. Gitインストール
  2. クライアントからソースコミット

Gitインストール

yumリポジトリ追加

$ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm $ rpm -Uvh rpmforge-release-0.5.3-1.el5.rf.i386.rpm

git-daemonインストール

gitは既にインストールされていたのでdaemonのみインストール

$ yum install git-daemon --enablerepo=rpmforge

xinetd設定

gitプロトコルでアクセスした場合に、git-daemonが起動するようにxinetdに設定ファイルを作成する。

$ cp /etc/xinetd.d/git /etc/xinetd.d/git-daemon $ vi /etc/xinetd.d/git-daemon # default: off # description: The git dæmon allows git repositories to be exported using \ # the git:// protocol. service git { disable = no #noに変更 socket_type = stream wait = no user = nobody server = /usr/bin/git-daemon server_args = --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose log_on_failure += USERID # xinetd does not enable IPv6 by default flags = IPv6 } $ /etc/rc.d/init.d/xinetd restart #再起動

gitレポジトリ作成

/var/lib/git/の下にgitのレポジトリを作成した。

$ mkdir /var/lib/git/repos $ mkdir /var/lib/git/repos/project.git $ cd /var/lib/git/repos/project.git $ git --bare init --shared Initialized empty shared Git repository in /var/lib/git/repos/project.git/

  • --bare:git に対するオプション。管理ファイル等を作成する。
  • --shared:init に対するオプション。グループ書きこみ権限を追加する。

git用グループ作成

$ groupadd git $ usermod -G wheel,git suusuke $ chown -R root.git /var/lib/git/
wheelグループから外れないように、wheelも追加する。

クライアントからソースコミット

ローカルリポジトリ作成

$ cd ~/home/project/ $ git init

ローカルリポジトリコミット

$ git add . $ git commit -m "First Commit"

リモートリポジトリの登録

$ git remote add origin ssh://[username]@[servername]:[port]/var/lib/git/repos/project.git

リモートリポジトリへpush

$ git push origin master

参考

gitweb

引用元: CentOS - Git サーバ構築! - mk-mode BLOG.

取り合えず構築した感じなので、後は会社のPCからgit cloneを試してみる。