公司规模不大,成立之初,选择了svn做为版本控制系统。这对于用惯了git的我来讲,将就了一段时间后,极为不爽,切换到git-svn勉强能用。随后,由于产品须要发布不一样的版本,而git-svn对远程分支的支持又甚为很差,因而提出搭建git环境的想法。鉴于呆过的前公司,没有一家使用svn不出事的(印象最深的是,阿里云OS就出现了一次svn重大事故),我不是svn黑,领导欣然赞成。php
一共php,android,ios三个小团队,因此分别为php,android端,ios端搭建三个git仓库。
固然三十个git仓库均可以,和三个仓库是同样。android
这里以ubuntu为例(工做上实际使用的是centos)ios
sudo apt-get install git sudo apt-get install openssh-server
ssh配置相关操做:git
# 编辑ssh配置 sudo vim /etc/ssh/sshd_config # 查看ssh server是否启动 # 若是只有ssh-agent那ssh-server尚未启动,若是看到sshd那说明ssh-server已经启动了 ps -e | grep ssh # 启动ssh服务 sudo /etc/init.d/ssh start # 重启ssh服务 sudo /etc/init.d/ssh resart # 中止ssh服务 sudo /etc/init.d/ssh stop
专门建立git用户,便于控制权限和管理ubuntu
# 添加git用户 sudo adduser git # 设置git密码为jayfeng sudo passwd jayfeng
以android为例子,建立一个对应的仓库vim
# 以git用户身份登录后,切换到主目录 cd # 建立全部git仓库的总目录 mkdir git-repo cd git-repo # 为android建立ANDROID_CODE仓库 git init --bare ANDROID_CODE.git
若是不作这一步,后面从局域网clone代码的时候每次都要输入git用户的密码,因此这一步的目的是经过配置ssh认证,实现免密码同步代码。
下图展现了如何生成ssh key的私钥和公钥:
私钥id_rsa本身用,把公钥id_rsa.pub配置到服务器端git用户的~/.ssh/authorized_keys(即,把id_rsa.pub的内容添加到authorized_keys新一行),同时配置权限:centos
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
并把生成的私钥id_rsa共享给团队的开发人员。bash
若是服务器的IP是192.168.1.18,那么局域网的机器就能够经过下面的方式访问了:服务器
# 拷贝私钥id_rsa到.ssh目录 mv id_rsa ~/.ssh # 若是提示权限不对(bad permission 或者 permission too open),请按以下配置 cd ~/.ssh chmod 700 id_rsa # 团队成员访问git仓库 git clone git@192.168.1.18:~/git-repo/ANDROID_CODE.git
小团队使用git,一方面要利用起git的强大功能,一方面要还要摒弃冗余的配置。本次记录了局域网内的git环境搭建。接下来的难点就是如何在公司中培训推广git的使用,克服初学git的陡峭曲线>(相对于svn来讲)。ssh
同步发布:http://www.jayfeng.com/2015/07/25/记一次小团队Git实践(上)/