27. 搭建Git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。
GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不
得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git
第二步,创建一个git用户,用来运行git服务:
$ sudo adduser git
第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入
到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去
改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就简单了。
管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队
有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。
管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写
权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持
权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目
的。Gitolite就是这个工具。
这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。
小结
搭建Git服务器非常简单,通常10分钟即可完成;
要方便管理公钥,用Gitosis;
要像SVN那样变态地控制权限,用Gitolite。
期末总结
终于到了期末总结的时刻了!
经过几天的学习,相信你对Git已经初步掌握。一开始,可能觉得Git上手比较困难,尤其是已经熟悉SVN的童鞋,没关系,多
操练几次,就会越用越顺手。
Git虽然极其强大,命令繁多,但常用的就那么十来个,掌握好这十几个常用命令,你已经可以得心应手地使用Git了。
友情附赠国外网友制作的Git Cheat Sheet,建议打印出来备用:
Git Cheat Sheet
现在告诉你Git的官方网站:http://git-scm.com,英文自我感觉不错的童鞋,可以经常去官网看看。什么,打不开网站?相信
我,我给出的绝对是官网地址,而且,Git官网决没有那么容易宕机,可能是你的人品问题,赶紧面壁思过,好好想想原因。
如果你学了Git后,工作效率大增,有更多的空闲时间健身看电影,那我的教学目标就达到了。
谢谢观看!
27. 搭建Git服务器相关推荐
- 搭建git服务器(权限管理)
自己的服务器到期,转移自己博客内容至此. 之前写的 搭建git服务器 适合小团队.当团队人数较多时,可将git权限集中管理. 一.创建git用户,禁止git用户直接登陆 [root@git ~]# a ...
- centos7 下搭建git服务器
总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...
- 搭建Git服务器教程转载
1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...
- git进入项目目录 windows_Windows下搭建Git服务器
Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...
- 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...
- CentOs上搭建git服务器
CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...
- Windows下Git的安装和基本使用、搭建Git服务器
1 Git的安装和基本使用 安装完成桌面有个Git Bash图标: 弹出Git Bash:用 git init 在目录中创建新的 Git 仓库:下面在G:/git2/test1目录创建: 创建完成会有 ...
- CentOS7搭建Git服务器
CentOS7搭建Git服务器 文章目录 CentOS7搭建Git服务器 前言 搭建步骤 参考链接 前言 现有一台操作系统为CentOS 7的服务器,要将其作为代码库服务器使用,要求使用Git进行代码 ...
- Windows 使用 Gogs 搭建 Git 服务器
随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...
- centos 搭建git服务器
首先服务器需安装git 参考链接:https://www.cnblogs.com/-mrl/p/11045998.html 搭建git服务器 1.新建git仓库主目录,可以选择创建在/data目录下. ...
最新文章
- 4.3.4 网络地址转换NAT
- activemq5.14 mysql_activemq5.14+zookeeper3.4.9实现高可用
- Anaconda 镜像源操作(查看配置删除)
- window下遍历并修改文件
- MFC_recvfrom
- linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式
- Hadoop——MapReduce(3)
- 数据挖掘-Apriori算法
- 百度热力图和高德热力图对比
- C++ 语言学习入门--类
- bzoj1597: 土地购买
- Golang go mod 使用
- 萤石云视频播放器来回切换视频报错bug
- 线性基(线性无关的基底)
- 信息传递(tarjan算法)
- [家里蹲大学数学杂志]第389期中国科学院大学2014-2015-1微积分期中考试试题参考解答...
- C++中 pair 和 make_pair 的用法
- 唯品会基于 Clickhouse 存储日志的实践
- 在Linux下如何查CC攻击
- 物联卡注销的方法有哪些
热门文章
- centreon-engine 性能调优
- UVA 254 Towers of Hanoi
- 使用C#创建ActiveX控件(译文)
- 如何着手分析一个行业?
- think php 500错误,thinkPHP5配置nginx环境无法打开 ,每次都是报500错误
- 润乾报表连接mysql_润乾报表与DERBY数据库的创建连接详解
- [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统
- Struts,Spring,Hibernate三大框架的面试
- 高效管理 Android 前台服务
- 轻轻松松的记住Linux系统目录结构