最近准备跟小伙伴们一起做个网站,需要用到git方便共享代码,所以搭个git服务器作为远程仓库。
1、安装git
sudo apt-get install git
2、创建一个git用户来运行git服务
sudo adduser git
切换到git账号,生成秘钥
su git
ssh-keygen
3、配置远程登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub
文件中的内容,把所有公钥导入到 /home/git/.ssh/authorized_keys
文件里,一行一个。
在Windows系统中,id_rsa.pub
文件是在 用户目录中的 .ssh
目录中,Linux也是。
4、初始化一个空的仓库
假定在 /srv
目录中新建一个文件夹 test.git
作为仓库,先cd到、srv目录下,输入下边命令
sudo git init --bare test.git
//初始化完成后是无法看到上传到仓库的文件的
如果使用 git init
命令直接初始化会导致文件不可上传
5、修改仓库用户
chown -R git /srv/test.git
如果不修改用户及用户组的话,上传文件到远程仓库可能会报错
insufficient permission for adding an object to repository database ./objects
或其他权限问题
6、禁用shell登录
处于安全考虑,禁止git账号shell登录
vim /etc/passwd
找到这一行
git:x:1001:1001:git,git,git,git,git:/home/git:/bin/bash
将其修改为
git:x:1001:1001:git,git,git,git,git:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
以下步骤在客户端git执行
7、初始化本地仓库
初始化本地仓库需要使用 git init
命令,如果使用 git init --bare test.git
命令不能执行大部分的 git 命令,包括 git add
、git commit
等命令
8、建立本地仓库与远程仓库的联系
在本地仓库中执行
git remote add origin git@server:/srv/test.git
server 为主机地址
9、克隆远程仓库
git clone git@server:/srv/test.git
server 为主机地址