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

  1. 【Git】搭建Git 服务器

    文章目录 服务器操作 1. 安装 git 2. 添加 git 账户 3. 创建证书 登录 4. 在Git服务器上打开 RSA认证 5. 初始化Git仓库 (在服务器 xx.xx.xx.xx 上创建裸仓 ...

  2. 【git】搭建git服务器

    在 Linux 下搭建 Git 服务器 目录 ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clon ...

  3. 在Win2008 R2下用 Bonobo Git Server 搭建 Git 服务器

    当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器? Bonobo Git Server基于.NET Framework 4.0+ASP.N ...

  4. git gitolite 搭建git服务器

    准备环境 centOS7 192.168.1.216 1. 在git服务器中安装git软件 [root@bogon ~]# yum -y install git 2. 添加git用户 [root@bo ...

  5. linux suse git,SUSE 搭建GIT服务

    1.安装git 1.1在suse软件库中安装git zypper install git 不同系统的Linux安装软件包的命令不同,suse中是使用zypper. 1.2检查git是否安装成功 # g ...

  6. 在windows2019利用Bonobo Git Server搭建Git服务器

    1.准备软件包 Git客户端:https://git-scm.com/downloads 为了方便可以再下载一个GUI:这里选了,其它的也可以.Sourcetree,下载地址:https://www. ...

  7. linux git 搭建 debian,基于Debian Linux搭建Git服务器

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 因为一些众所周知的原因,某些项目不适合开源(代码写的烂我会乱说?(╯﹏╰)b ).又因为博主不是壕,买不起Github的 ...

  8. centos7 下搭建git服务器

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

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

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

最新文章

  1. 让人头痛的大事务问题到底要如何解决?
  2. 聚类评价兰德系数讲明白的
  3. 从零开始学 Java - Spring 使用 Quartz 任务调度定时器
  4. java 并发编程 aqs_Java并发编程之AQS
  5. 在CloudBees上开发,测试和部署独立应用程序
  6. 有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
  7. 2021辽宁高考成绩查询公布,2021辽宁高考成绩什么时候出
  8. 高数——八种求极限方法总结
  9. Si4463/Si4432/Si4438无线射频RF方案
  10. t3财务软件服务器停止运行,用友T3标准版已停止工作应该怎么办
  11. lcov和gcov的使用错误
  12. FASTDB中文手册
  13. Editplus 使用技巧大全
  14. 溢出英语计算机,查看溢出(简述计算机溢出原理)
  15. ROS日记:ROS系统的备份和还原
  16. mysql 中手动设置事务提交
  17. 拼多多产品怎么引流?拼多多商品怎么引更多的流量?
  18. DRM框架(vkms)分析(4)----encoder初始化
  19. 获取当前系统日期和时间
  20. EM算法估计GMM (二维高斯混合模型)参数 python 2.7(西瓜书版)

热门文章

  1. java 主动抛出 段错误_分段错误的原因?
  2. Edge浏览器无法登录同步共享问题
  3. System.AccessViolationException:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
  4. 我为什么放弃学术选择创业:这不仅仅关乎人工智能
  5. 徒给别人做嫁衣——与人共同创业(1)
  6. C++到底还能做什么
  7. pandas生成excel多级表头
  8. 科目三: 济南章丘二号线
  9. Java从业者职业生涯必备书籍200+
  10. 我的英文写作学习之旅:100日入门+后期靠积累