Git之搭建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服务器相关推荐
- 【Git】搭建Git 服务器
文章目录 服务器操作 1. 安装 git 2. 添加 git 账户 3. 创建证书 登录 4. 在Git服务器上打开 RSA认证 5. 初始化Git仓库 (在服务器 xx.xx.xx.xx 上创建裸仓 ...
- 【git】搭建git服务器
在 Linux 下搭建 Git 服务器 目录 ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clon ...
- 在Win2008 R2下用 Bonobo Git Server 搭建 Git 服务器
当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器? Bonobo Git Server基于.NET Framework 4.0+ASP.N ...
- git gitolite 搭建git服务器
准备环境 centOS7 192.168.1.216 1. 在git服务器中安装git软件 [root@bogon ~]# yum -y install git 2. 添加git用户 [root@bo ...
- linux suse git,SUSE 搭建GIT服务
1.安装git 1.1在suse软件库中安装git zypper install git 不同系统的Linux安装软件包的命令不同,suse中是使用zypper. 1.2检查git是否安装成功 # g ...
- 在windows2019利用Bonobo Git Server搭建Git服务器
1.准备软件包 Git客户端:https://git-scm.com/downloads 为了方便可以再下载一个GUI:这里选了,其它的也可以.Sourcetree,下载地址:https://www. ...
- linux git 搭建 debian,基于Debian Linux搭建Git服务器
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 因为一些众所周知的原因,某些项目不适合开源(代码写的烂我会乱说?(╯﹏╰)b ).又因为博主不是壕,买不起Github的 ...
- 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 ...
最新文章
- 让人头痛的大事务问题到底要如何解决?
- 聚类评价兰德系数讲明白的
- 从零开始学 Java - Spring 使用 Quartz 任务调度定时器
- java 并发编程 aqs_Java并发编程之AQS
- 在CloudBees上开发,测试和部署独立应用程序
- 有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
- 2021辽宁高考成绩查询公布,2021辽宁高考成绩什么时候出
- 高数——八种求极限方法总结
- Si4463/Si4432/Si4438无线射频RF方案
- t3财务软件服务器停止运行,用友T3标准版已停止工作应该怎么办
- lcov和gcov的使用错误
- FASTDB中文手册
- Editplus 使用技巧大全
- 溢出英语计算机,查看溢出(简述计算机溢出原理)
- ROS日记:ROS系统的备份和还原
- mysql 中手动设置事务提交
- 拼多多产品怎么引流?拼多多商品怎么引更多的流量?
- DRM框架(vkms)分析(4)----encoder初始化
- 获取当前系统日期和时间
- EM算法估计GMM (二维高斯混合模型)参数 python 2.7(西瓜书版)
热门文章
- java 主动抛出 段错误_分段错误的原因?
- Edge浏览器无法登录同步共享问题
- System.AccessViolationException:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
- 我为什么放弃学术选择创业:这不仅仅关乎人工智能
- 徒给别人做嫁衣——与人共同创业(1)
- C++到底还能做什么
- pandas生成excel多级表头
- 科目三: 济南章丘二号线
- Java从业者职业生涯必备书籍200+
- 我的英文写作学习之旅:100日入门+后期靠积累