Ubuntu 搭建简单 Git 服务器
今天试了一下在直接阿里云服务器搭建了一个最简单的git服务端
-
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。 -
第一步,安装git:
$ sudo apt-get install git -
第二步,创建一个git用户,用来运行git服务,可以使用id git 命令来查看用户的id:
$ sudo adduser git -
第三步,创建证书登录:
把自己的id_rsa.pub文件公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 -
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/var/www/test.git,在/var/www目录下输入命令:
$ sudo git init --bare test.git
Git就会创建一个裸仓库,把owner改为git:
$ sudo chown -R git:git test.git -
第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:503:503::/home/git:/bin/bash
改为:
git:x:503:503::/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,503是uid和gid,id git可以查看。 -
第六步,克隆远程仓库:
现在,客户端可以通过git clone命令克隆远程仓库了:
$ git clone git@server:/var/www/sample.git
本作品采用《CC 协议》,转载必须注明作者和本文链接
/home/git/.ssh/authorized_keys
记得这个文件的权限也要改 , 或者在git用户登陆的时候创建使用repo的
hooks
里面一个post-push
脚本可以配合部署上线的 , 把push上来的压缩包解压到对应位置 , 每个repo需要单独配置还有那个git不区分文件名大小写, 这个才是坑 , 在本地文件名
Index.htm
->解压push包得到的是index.htm
, 这导致我又用回了Filezilla
....... 本能地工具回滚 , 而不是找解决方案[逃~] ....楼下继续说说使用git的注意东西~~