在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了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服务器相关推荐

  1. 搭建git服务器(权限管理)

    自己的服务器到期,转移自己博客内容至此. 之前写的 搭建git服务器 适合小团队.当团队人数较多时,可将git权限集中管理. 一.创建git用户,禁止git用户直接登陆 [root@git ~]# a ...

  2. centos7 下搭建git服务器

    总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...

  3. 搭建Git服务器教程转载

    1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...

  4. git进入项目目录 windows_Windows下搭建Git服务器

    Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...

  5. 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器

    在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...

  6. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  7. Windows下Git的安装和基本使用、搭建Git服务器

    1 Git的安装和基本使用 安装完成桌面有个Git Bash图标: 弹出Git Bash:用 git init 在目录中创建新的 Git 仓库:下面在G:/git2/test1目录创建: 创建完成会有 ...

  8. CentOS7搭建Git服务器

    CentOS7搭建Git服务器 文章目录 CentOS7搭建Git服务器 前言 搭建步骤 参考链接 前言 现有一台操作系统为CentOS 7的服务器,要将其作为代码库服务器使用,要求使用Git进行代码 ...

  9. Windows 使用 Gogs 搭建 Git 服务器

    随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...

  10. centos 搭建git服务器

    首先服务器需安装git 参考链接:https://www.cnblogs.com/-mrl/p/11045998.html 搭建git服务器 1.新建git仓库主目录,可以选择创建在/data目录下. ...

最新文章

  1. 4.3.4 网络地址转换NAT
  2. activemq5.14 mysql_activemq5.14+zookeeper3.4.9实现高可用
  3. Anaconda 镜像源操作(查看配置删除)
  4. window下遍历并修改文件
  5. MFC_recvfrom
  6. linux用shell写正则表达式,Linux命令行与Shell脚本编程大全-shell正则表达式
  7. Hadoop——MapReduce(3)
  8. 数据挖掘-Apriori算法
  9. 百度热力图和高德热力图对比
  10. C++ 语言学习入门--类
  11. bzoj1597: 土地购买
  12. Golang go mod 使用
  13. 萤石云视频播放器来回切换视频报错bug
  14. 线性基(线性无关的基底)
  15. 信息传递(tarjan算法)
  16. [家里蹲大学数学杂志]第389期中国科学院大学2014-2015-1微积分期中考试试题参考解答...
  17. C++中 pair 和 make_pair 的用法
  18. 唯品会基于 Clickhouse 存储日志的实践
  19. 在Linux下如何查CC攻击
  20. 物联卡注销的方法有哪些

热门文章

  1. centreon-engine 性能调优
  2. UVA 254 Towers of Hanoi
  3. 使用C#创建ActiveX控件(译文)
  4. 如何着手分析一个行业?
  5. think php 500错误,thinkPHP5配置nginx环境无法打开 ,每次都是报500错误
  6. 润乾报表连接mysql_润乾报表与DERBY数据库的创建连接详解
  7. [ABP开源项目]--vue+vuex+vue-router+EF的权限管理系统
  8. Struts,Spring,Hibernate三大框架的面试
  9. 高效管理 Android 前台服务
  10. 轻轻松松的记住Linux系统目录结构