记一次小团队Git实践(上)

公司规模不大,成立之初,选择了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用户

专门建立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

配置ssh key

若是不作这一步,后面从局域网clone代码的时候每次都要输入git用户的密码,因此这一步的目的是经过配置ssh认证,实现免密码同步代码。
下图展现了如何生成ssh key的私钥和公钥:
如何生成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实践(上)/

相关文章
相关标签/搜索