Git 環境準備

git

aptitude install git で進められたパッケージをインストール(debian squeeze)。

gitolite

GitHub : sitaramc/gitolite · GitHub
Manual等 : Hosting git repositories

  • インストール手順
    • server : repository管理ホスト、client : 作業端末
server# useradd gitolite
server# passwd gitolite
server# su - gitolite
server$ ssh-keygen -t rsa # 管理者アカウント名を秘密鍵の名前(ここではadmin)にする
server$ mv admin* .ssh/
server$ git clone http://github.com/sitaramc/gitolite.git
server$ mkdir-p ~/bin
server$ gitolite/install -ln
server$ ~/bin/gitolite setup -pk .ssh/admin.pub
server$ ls -al # 鍵認証が必要なので、~gitolite, ~gitolite/.ssh のパーミッションを確認(700か)
  • ユーザー追加手順
    • gitolite-admin リポジトリの keydir/ にユーザーの公開鍵をcommit/pushする。
client$ ssh-keygen -t rsa # 作業ユーザーのアカウント名を秘密鍵の名前(ここではuser)にする
client$ mv user* .ssh/
client$ scp gitolite@server:~/.ssh/admin .ssh/server.admin # 複数ホストに備え名前を適当に変更
client$ cat >> .ssh/config 
host server-gitolite-admin
  user gitolite
  hostname server
  port 22
  identityfile ~/.ssh/server.admin
^D
client$ git clone ssh://server-gitolite-admin/gitolite-admin.git
client$ cd gitolite-admin
client$ cp ~/.ssh/user.pub keydir/
client$ git add keydir/user.pub
client$ git commit
client$ git push
client$ cd ~
client$ cat >> ~/.ssh/config
host server-gitolite
  user gitolite
  hostname server
  port 22
  identityfile ~/.ssh/user.pub
^D
client$ ssh server-gitolite # アクセスできるリポジトリ一覧を参照できる(デフォルトで testing のみ)
  • リポジトリ追加、権限編集など
    • gitolite-admin リポジトリの conf/gitolite.conf を編集
client$ cd gitolite-admin
client$ vi conf/gitolite.conf
client$ git commit
client$ git push

git flow

GitHub : nvie/gitflow · GitHub

  • インストール
client$ git clone http://github.com/nvie/gitflow.git
client$ cd gitflow/
client$ vi .gitmodules # proxy を越えるため、プロトコルを http に変更
client$ git submodule init
client$ git submodule update
client$ cd ..
client$ INSTALL_PREFIX=/opt/git/gitflow bash gitflow/contrib/gitflow-installer.sh 
client$ export PATH="/opt/git/gitflow:$PATH" # ~/.profile あたりにも反映

git flow complation

GitHub : bobthecow/git-flow-completion · GitHub
Install Bash git completion · bobthecow/git-flow-completion Wiki · GitHubaptitude install git したときに入っていたらしい。

  • インストール
client$ git clone http://github.com/bobthecow/git-flow-completion.git
client$ cp git-flow-complation/git-flow-completion.bash ~/bin # 適当な場所に
client$ source ~/bin/git-flow-completion.bash # .bashrc あたりにも反映