自己动手搭建Git服务器

字数 813阅读 4069

平时工作中经常用到Git做代码版本控制,但自己从来没有搭建过Git服务,一直都是用现成的,这两天不算太忙,摸索了一下如何自己搭建Git服务器,服务器系统选Ubuntu,没别的原因,一个字:简单!

以下是我的摸索历程。因为我是摸索,加上没有额外的设备(只有一台Mac),所以我用的是虚拟机。。。

开始前下载了以下资源:

下文中所有
服务器 --> Ubutun系统
客户端 --> Mac系统

1. 在虚拟机中创建服务器(有单独设备请跳过)

在VirtualBox新建虚拟电脑
名称:GITUBT
类型:Linux
版本:Ubuntu(64-bit)

启动虚拟机中的GITUBT,根据提示配置内存等,虚拟硬盘建议设置10GB以上,最后根据提示选择之前下载的iso镜像文件安装Ubuntu操作系统

选择『安装 Ubuntu Kylin』

其中有一步需要配置超级用户,需要记住这里的密码,我这里配置 999999


另外在虚拟机外部的设置里选择网络链接方式

2. 服务器配置

  1. 在服务器安装git

     yyq@yyq-VirtualBox:~$ sudo apt-get install git  
    

确认安装成功

    yyq@yyq-VirtualBox:~$ git --version
  1. 查看服务器IP

     yyq@yyq-VirtualBox:~$ ifconfig  
    
  2. 在服务器根目录中创建 pub 文件夹,用来存放公钥,这个稍后会用到

     yyq@yyq-VirtualBox:~$ mkdir pub
    
  3. 添加新用户,设置新用户密码(888888)

     yyq@yyq-VirtualBox:~$ sudo adduser gitUser
    
  4. 切换到gituser用户下,需要密码(888888)

     yyq@yyq-VirtualBox:~$ su gituser
    
  5. 在gituser下创建.ssh文件夹,并在.ssh下创建authorized_keys文件,稍后用来存储公钥信息,ssh免密登录

    注:本机第一次ssh远程登录服务器时会有这个提示,ssh原理及应用见阮一峰老师的文章

     gituser@yyq-VirtualBox:~$ mkdir .ssh
     gituser@yyq-VirtualBox:~$ cd .ssh/
     gituser@yyq-VirtualBox:~/.ssh$ touch authorized_keys
    
  6. 检查ssh是否安装,或通过下面命令安装

     yyq@yyq-VirtualBox:~$ sudo apt-get install openssh-server
    
  7. 客户端打开终端,拷贝公钥到服务器

     $ scp .ssh/id_rsa.pub yyq@192.168.2.107:/pub
    
  8. 回到服务器,可以在pub文件夹下找到id_rsa.pub文件,这就是刚才拷贝过来的公钥,通过如下命令把公钥内容写进权限文件

     //拼接公钥到本地authorized_keys中
     gituser@yyq-VirtualBox: ~$ cat /home/yyq/pub/id_rsa.pub >> /home/gituser/.ssh/authorized_keys
    

    这样一来,再次从客户端远程登录gituser的时候就不需要再输入密码了

  9. 最后,在服务器端指定一个目录(codeRepo)作为Git远程仓库,初始化一个空 git 仓库 (--bare)

    gituser@yyq-VirtualBox: ~$ mkdir codeRepo
    gituser@yyq-VirtualBox: ~$ cd codeRepo 
    gituser@yyq-VirtualBox: ~/codeRepo$ git init --bare projectNO1.git
    

3. 客户端

在客户端通过git clone命令拉取工程,做修改等操作,最后可以正常push到远程仓库

4. 权限

。。。待续

推荐阅读更多精彩内容