公司规模不大,成立之初,选择了svn作为版本控制系统。这对于用惯了git的我来说,将就了一段时间后,极为不爽,切换到git-svn勉强能用。随后,因为产品需要发布不同的版本,而git-svn对远程分支的支持又甚为不好,于是提出搭建git环境的想法。鉴于呆过的前公司,没有一家使用svn不出事的(印象最深的是,阿里云OS就出现了一次svn重大事故),我不是svn黑,领导欣然同意。

需求

一共php,android,ios三个小团队,所以分别为php,android端,ios端搭建三个git仓库。

当然三十个git仓库都可以,和三个仓库是一样。

环境

这里以ubuntu为例(工作上实际使用的是centos)

安装软件

sudo apt-get install git
sudo apt-get install openssh-server

ssh配置相关操作:

# 编辑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用户,便于控制权限和管理

# 添加git用户
sudo adduser git
# 设置git密码为jayfeng
sudo passwd jayfeng

初始化仓库

以android为例子,创建一个对应的仓库

# 以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的私钥和公钥:



私钥id_rsa自己用,把公钥id_rsa.pub配置到服务器端git用户的~/.ssh/authorized_keys(即,把id_rsa.pub的内容添加到authorized_keys新一行),同时配置权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

并把生成的私钥id_rsa共享给团队的开发人员。

局域网访问

如果服务器的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来说)。

同步发布:http://www.jayfeng.com/2015/07/25/记一次小团队Git实践(上)/

记一次小团队Git实践(上)的更多相关文章

  1. 记一次小团队Git实践(下)

    在上篇中,我们已经能基本使用git了,接下来继续更深入的挖掘一下git. 更多的配置自定义信息 除了前面讲的用户名和邮箱的配置,还可以自定义其他配置: # 自定义你喜欢的编辑器,可选 git conf ...

  2. 记一次小团队Git实践(中)

    对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载 ...

  3. 小团队git开发模式

    实验室要使用Git进行代码管理,但是git非常复杂,各种开发模式也是层出不穷.作为新手的偶们很是发囧啊!!网上搜了一下,发现很多并不适合我们小团队运作(它本身就是为Linux内核管理而开发的分布式代码 ...

  4. 小团队Git协作流程

    git和svn 最大的差异在于git是分布式的管理方式而svn是集中式的管理方式. 集中式 集中式代码管理的核心是服务器,所有开发者在开始coding之前必须从服务器获取代码,然后开发,最后解决冲突, ...

  5. Git 在小团队中的管理流程(转)

    目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...

  6. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  7. Git 在小团队中的管理流程

    目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...

  8. 团队Github实践训练

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 团队名称 WeChair 这个作业要求在哪里 团队Github实践训练 这个作业的目标 通过github实现团队协作编码 作业正 ...

  9. Springcloud及Git线上配置详解

    SpringCloud 这个阶段该如何学? 三层架构 + MVC 框架: Spring IOC AOP SpringBoot,新一代的JavaEE开发标准,自动装配 模块化~ all in one,代 ...

随机推荐

  1. codeforces 557B. Pasha and Tea 解题报告

    题目链接:http://codeforces.com/problemset/problem/557/B 题目意思:有 2n 个茶杯,规定第 i 个茶杯最多只能装 ai 毫升的水.现在给出 w 毫升的水 ...

  2. VB中字符串操作函数

    Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数. Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) ...

  3. LeetCode 283 Move Zeros

    Problem: Given an array nums, write a function to move all 0's to the end of it while maintaining th ...

  4. September 4th 2016 Week 37th Sunday

    The morning crowned the humble cloud with splendor. 晨光为谦逊的白云披上壮丽的光彩. Humility is a virtue. Many famo ...

  5. AI调色板

    AI新建图层时,要选择CMYK模式,才能出现如下图所示调色板,如果选RGB模式,那么调整颜色的时候只能通过输入RGB.

  6. Android开发环境搭建:离线安装ADT插件和安装SDK

    一.准备 在线安装SDK较慢,在此我选择了离线安装,所需要的工具下载:http://yun.baidu.com/share/link?shareid=2286446004&uk=2000812 ...

  7. Django环境配置

    Django安装 #安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django==1.7.1 项目创建 $ django-ad ...

  8. hdu2030 汉字统计

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2030 解题思路:主要考察汉字的编码方式, 汉字机内码在计算机的表达方式的描述是,使用二个字节,汉字的每 ...

  9. sql中union和union all的用法

    如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和unio ...

  10. SQL Server占用内存的认识

    SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer).执行缓存(Procedure Cache).以及SQL Server引擎程序.SQL Server引擎程序所占用缓存 ...