git中远程仓库与本地仓库没什么区别,只是提供了一个24小时不关机的服务器,方便不同的机器获取和开发,然而托管于在线GitHub网址是开源的,大多数公司不希望自己的代码被别人知道,所以那么选择SVN集中式版本开发,要么自己搭建Git服务器,这节主要学习搭建Git服务器的知识
Git服务器搭建
准备工作:
- 准备一台 Linux 的机器(Ubuntu或者 Debian)
安装 git:
1sudo apt-get install git创建git用户,用来运行 git 服务
1sudo adduser git
收集所有需要访问用户的GitHub上面的公钥 就是用户自己的id_rsa.pub文件,把所有公钥导入到
/home/git/.ssh/authoriz ed_keys
文件里,一行一个
- 初始化版本仓库,假定是/srv/sample.git,在/srv目录下输入1sudo git init --bare sample.git
Git 就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的 Git 仓库纯粹是为了共享,所有不让用户直接登记到服务器上去改服务区,并且服务器上的 Git 仓库通常都是 .git
结尾。然后,把owner 改为git:1sudo chown -R git:git sample.git
- 禁用 shell
处于安全考虑,创建git的用户不允许登录shell,找到etc/passwd文件找到类似下面的一行:
123git:x:1001:1001:,,,:/home/git:/bin/bash改为git:x:1001:1001:,,,:/home/usr/bin/git-shell
这样git用户可以正常通过ssh使用git,但无法登录shell,因为为git用户指定的shell登录就自动退出。
- 验证服务器
git clone 克隆远程库
|
|
涉及到的知识:
- apk 是Debian及其派生发行版的软件包管理器
- Sudo 是一种程序,用于类Unix操作系统如BSD,Mac OS X,以及GNU/Linux以允许用户通过安全的方式使用特殊的权限运行程序(通常为系统的超级用户)。