Ubuntu下 git 服务器的搭建【转】
转自:http://www.open-open.com/lib/view/open1391477731082.html
搭建git服务器的4个步骤
1 配置服务器前的准备工作
首先ubuntu系统要联网 安装了git,openssh-server和openssh-client软件,并检测是否开启。
rpm -qa | grep -i git (查看是否安装git)
sudo apt-get install git
sudo apt-get install openssh-server
sudo apt-get install openssh-client
2 添加git 用户
新加用户git,该用户将作为所有代码仓库和用户权限的管理者:
geiao@ubuntu :~$ sudo useradd -m git
geiao@ubuntu :~$ sudo passwd git
建立一个git仓库的存储点,并且设置权限使除了git以外的用户对此目录无任何访问权限。
geiao@ubuntu :~$ sudo mkdir /home/pro_j
(建立个目录,作为存储点。)
geiao@ubuntu :~$ sudo chown git:git /home/pro_j
(把pro_j的权限给 git)
geiao@ubuntu :~$ sudo chmod 755 /home/pro_j (将文件pro_j设置为 rwxr_xr_x 除了git以外的用户对此目录无任何访问权限)
3 安装配置gitosis
初始化服务器的git用户 可以用cat ~/.gitconfig 查看
geiao@ubuntu :~$ git config --global user.name "your name"
geiao@ubuntu :~$ git config --global user.email your email
geiao@ubuntu :~$ cat ~/.gitconfig
[user] name = zhang mingjie
email = Jghost@yeah.net
安装一下python的setuptool,也是为gitosis做准备:
geiao@ubuntu :~$ sudo apt-get install python-setuptools
获得gitosis包:
geiao@ubuntu :~$ mkdir osis
geiao@ubuntu :~$ cd osis
geiao@ubuntu :~/osis$ git clone git://eagain.net/gitosis.git
注意:执行上步骤会出错
Cloning into gitosis...
eagain.net[0: 208.78.102.120]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
可使用:git clone https://github.com/res0nat0r/gitosis.git代替
geiao@ubuntu :~/osis$ cd gitosis
geiao@ubuntu :~/osis/gitosis$ sudo python setup.py install 默认状态下,gitosis会将git仓库放在git用户home下的repositories中,所以要做个链接: geiao@ubuntu :~/osis/gitosis$ su git
$ ln -s /home/pro_j /home/git/repositories
$ exit
成为管理员:无论是不是本机都可以通过生成ssh公钥的方法成为管理员
geiao@ubuntu :~$ ssh-keygen -t rsa 生成的密钥可以通过在~/.ssh 文件中找到。
在服务器上建管理员:
geiao@ubuntu :~/osis/gitosis$ sudo chmod a+r ~/.ssh/id_rsa.pub
[sudo] password for geiao:
让gitosis运行起来:
geiao@ubuntu :~/osis/gitosis$ sudo -H -u git gitosis-init< ~/.ssh/id_rsa.pub
Initialized empty Git repository in /home/pro_j/gitosis-admin.git/
Reinitialized existing Git repository in /home/pro_j/gitosis-admin.git/
如果在另外的一台机子上建管理员,必须把那台机子的公钥(改名)拷到服务器上 然后修改上面划线操作的地址就行了。
Gitosis 通过一个git仓库管理配置文件,仓库就放在/home/pro_j/gitosis-admin.git。因此要为一个文件加上可执行权限:
geiao@ubuntu :/home/git$ sudo passwd root
geiao@ubuntu :/home/git$ su
root@ubuntu :/home/git# cd repositories
root@ubuntu :/home/git/repositories# cd gitosis-admin.git
root@ubuntu :/home/git/repositories/gitosis-admin.git# sudo chmod 755 /home/pro_j/gitosis-admin.git/hooks/post-update root@ubuntu :/home/git/repositories/gitosis-admin.git# exit
4 管理gitosis的配置文件
gitosis本身的配置也是通过git来实现的。在你自己的开发机里,把gitosis-admin.git这个仓库clone下来,就可以以管理员的身份修改配置了。
geiao@ubuntu :~$ cd osis
geiao@ubuntu :~/osis$ mkdir pro
geiao@ubuntu :~/osis$ cd pro
geiao@ubuntu :~/osis/pro$ git clone git@服务器ip:gitosis-admin.git
geiao@ubuntu :~/osis/pro$ cd gitosis-admin
geiao@ubuntu :~/osis/pro/gitosis-admin$ ls
gitosis.conf keydir
gitosis.conf文件和keydir文件夹
gitosi.conf文件主要的作用是管理员可以编写其他人的权限,可以编写对gitosis-admin的成员,也可以编写对仓库的权限 :writable和 readonly . 这里设置权限 可以建立group设置。
keydir 文件夹是存放其他人公钥的地方。而且必须注意 谁的公钥谁的名字的要求来存放。
geiao@ubuntu :~/osis/pro/gitosis-admin/keydir$ ls geiao@ubuntu.pub jghost.pub 否则在会出现:
ERROR:gitosis.serve.main:Repository read access denied
配置好后一定要做的操作事提交gitosis-admin的 改动,并commit 然后 git push 一下; 而且你不需要在服务器上建好一个空仓库,再导入项目。 Gitosis会在你建好项目推送到服务器上时自动创建。 然后就可以建立个项目 如proj.git(这点比较重要)
geiao@ubuntu :~/osis/pro$ mkdir proj
geiao@ubuntu :~/osis/pro$ cd proj
geiao@ubuntu :~/osis/pro/proj$ git init
Initialized empty Git repository in /home/geiao/osis/pro/proj/.git/
geiao@ubuntu :~/osis/pro/proj$ touch README
geiao@ubuntu :~/osis/pro/proj$ git add README
geiao@ubuntu :~/osis/pro/proj$ git commit -a -m "add readme"
geiao@ubuntu :~/osis/pro/proj$ git remote add origin git@10.10.4.229:proj.git
geiao@ubuntu :~/osis/pro/proj$ git push origin master
到此, 在ubuntu上建立git服务器基本上完成。
原文地址:http://blog.chinaunix.net/uid-20620288-id-3152615.html
Ubuntu下 git 服务器的搭建【转】的更多相关文章
- Ubuntu下tftp服务器的搭建
参考博客:http://blog.chinaunix.net/uid-26495963-id-3206829.html 1. 安装 $ apt-get install tftp-hpa tftpd-h ...
- Ubuntu下Git服务端搭建
1安装git $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt-get update $ sudo apt-get install git 测 ...
- Ubuntu下Git从搭建到使用详解
Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- git 服务器的搭建
文章转载地址:http://www.linuxidc.com/Linux/2015-05/117502.htm 亲测可行,已经自己搭建一个正在使用中,搭建完成后,结合着pycharm +git,就能直 ...
- 关于git服务器的搭建
Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...
- 项目实践中--Git服务器的搭建与使用指南(转)
一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来 ...
- 项目实践中--Git服务器的搭建与使用指南
一.前言 Git是一款免费.开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.在平时的项目开发中,我们会使用到Git来进行版本控制. Git的功能特性: 从一般开发者的角度来 ...
- ubuntu下git安装及使用
ubuntu下git安装及使用 其实,好几个月前,就已经安装好了,可是一直搁置在那儿,所以密码等一些其它细节都忘的差不多了,所以今天就重新部署了一下,并开始积极使用......... 1,git ...
随机推荐
- C++模式学习------原型模式
原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.意思就是从A的实例得到一份与A内容相同,但是又互不干扰的实例B. class base { public : base(co ...
- 【大数据】Kafka学习笔记
第1章 Kafka概述 1.1 消息队列 (1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息 ...
- zabbix自定义web检测
zabbix自定义web检测 本博客使用zabbix 版本 4.0.3 Web监控的原理 Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码.返回字符串等特定的数据进 ...
- Python定义函数
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...
- BZOJ 2732: [HNOI2012]射箭
2732: [HNOI2012]射箭 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2532 Solved: 849[Submit][Status] ...
- 【BZOJ1041】圆上的整点(数论)
[BZOJ1041]圆上的整点(数论) 题面 BZOJ 洛谷 题解 好神仙的题目啊. 安利一个视频,大概是第\(7\)到\(19\)分钟的样子 因为要质因数分解,所以复习了一下\(Pollard\_r ...
- 【BZOJ4591】【Shoi2015】超能粒子炮
Description 传送门 Solution 记\(a=\lfloor\frac n p\rfloor\),\(b=n\%p\).我们尝试使用Lucas定理展开这些组合数,寻找公共部分.以下除 ...
- 洛谷 P2431 正妹吃月饼 解题报告
P2431 正妹吃月饼 题目描述 今天是中秋节.\(uim\)带来了一堆大小不同且味道各异的月饼. 这些月饼的质量分别是\(1g\),\(2g\),\(4g\),\(8g\),\(16g\)....后 ...
- Linux内核分析期中知识点总结
Linux内核分析期中知识点总结 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆 ...
- Spring小节
Spring的总结 Spring的核心: 1. Spring的两大核心: 1. IOC: 控制反转,将创建(实例化)对象的权利交给Spring容器去进行管理. 2. AOP: 面向切面编程(将切面织入 ...