Git服务器安装

Posted by devon on January 6th, 2009 filed in 源代码管理

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

1
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的用户

1
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

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

1
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

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

1
git clone git@YOUR_SERVER:myrailsapp.git

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

原文请参考 : http://enjoyrails.com/wikis/Git安装

Related posts:

  1. Git详解(一) 我用git最开始是在github,每次提交代码以后,右上角的部分就会显示这些信息,类似于下面的: commit  fa6f27b7de063c2f301b0e7148b5bd5e813faa98 tree       5e7a19c158b89fbc52a078771a833ee839727404 parent   76f31606376180ca88efa12be341dbb14fb06fdf 咋一看,这40位的乱码挺吓人的,但是你了解它的作用就不会被吓到了。 这是object name,是作为你每次提交的信息标识。这是用SHA1加密hash函数根据你的对象的内容算出来的。Git的一些优点:...
  2. Git一分钟教程 流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器 取代码及修改全局设置 设置用户名与邮箱 git...
  3. Git详解(二) Git中级用法: Ignoring files 项目里总会出现你不想跟踪的文件。当然这些文件你不对它们进行git add操作就行了,但是这样也很麻烦, 如果使用git add .命令和git commit -a命令呢?你能告诉git去忽略一些文件,我们只需要在我们工作目录顶级创建一个.gitignore文件就可以了。就像这样:...

Related posts brought to you by Yet Another Related Posts Plugin.

Leave a Comment