Git安装

Git 在Mac OS下的安装

1
2
3
4
5
6
7
8
9
10
11
12
export TCL_PATH=`which tclsh`
export NO_MSGFMT=1
export GIT_VERSION='1.6.1'

curl -O "http://kernel.org/pub/software/scm/git/git-1.6.1.tar.gz"
tar zxvf git-1.6.1.tar.gz
cd git-1.6.1
./configure
make
sudo make install

git --version

Git on Ubuntu Server

安装Git-Core:

1
2
3
4
sudo apt-get update # 可选步骤
sudo apt-get dist-upgrade # 可选步骤

sudo apt-get install git-core

因为要用到 Gitosis ,所有,需要安装python setuptools


sudo apt-get install python-setuptools

安装 Gitosis

1
2
3
4
5
6
mkdir ~/src
cd ~/src
git clone git://eagain.net/gitosis

cd gitosis
sudo python setup.py install

增加名为Git的用户


sudo adduser --system --shell /bin/sh  --gecos 'git version control' --group --disabled-password --home /home/git git

上传公钥到USER用户的根目录下(如果没有,用 ssh-keygen -t rsa 生成)

1
2
3
scp .ssh/id_rsa.pub USER@YOUR_SERVER:
sudo -H -u git gitosis-init < /home/USER/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

到这一步,基本上都安装好了,到本地进行测试:


git clone git@YOUR_SERVER:gitosis-admin.git

成功后,在本地将有一个gitosis-admin目录,里面有gitosis.conf,keydir。

为Rails项目配置git
打开gitosis.conf,增加一块内容,members为某个用户的公钥~/.ssh/id_rsa.pub中的名字(在该文件的最后在)

1
2
3
[group myrailsapp]
members = vince@urbanpuddle
writable = myrailsapp

然后,提交修改

1
2
git commit -a -m "created a new repository"
git push

将本地代码提交到git中

1
2
cd myrailsapp
git init

创建 .gitignore 文件,用于忽略某些不需要进行代码管理的内容

1
2
3
4
5
.DS_Store
log/*.log
tmp/**/*
config/database.yml
db/*.sqlite3

提交代码

1
2
3
4
git remote add origin git@YOUR_SERVER:myrailsapp.git
git add .
git commit -a -m "initial import"
git push origin master:refs/heads/master

接下来,可以增加成员的公钥到系统中了

1
2
3
4
cd gitosis-admin
cp ~/alice.pub keydir/
cp ~/bob.pub keydir/
git add keydir/alice.pub keydir/bob.pub

修改gitosis.conf

1
2
3
4
[group myteam]
- members = jdoe
+ members = jdoe alice bob
  writable = free_monkey

提交修改

1
2
git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey"
git push

其它成员就可以获取代码了


git clone git@YOUR_SERVER:myrailsapp.git

请参考 Hosting Git repositories, The Easy (and Secure) Way


Wiki首页 | 查看所有 | 编辑 | 输出到博客 | 历史版本