搭建 Git 服务器

腾讯云
入门
0 个任务
剩余 3 个名额

你还可以 创建 或者 使用已有 云主机不限时上机

实验内容

Git 是一个开源的分布式版本控制软件。

首次可免费使用云主机 45 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。

实验资源

云服务器

软件环境

CentOS 7.2 64 位

目录

# 搭建 GIT 服务器教程 ## 下载安装 git > <time>5min ~ 10min</time> Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 此实验以 CentOS 7.2 x64 的系统为环境,搭建 git 服务器。 ### 安装依赖库和编译工具 为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 ``` yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel ``` 安装编译工具 ``` yum install gcc perl-ExtUtils-MakeMaker ``` > <checker type="output-contains" command="ls /usr/include/curl/" hint="curl-devel 依赖库未安装"> > <keyword regex="curl.h" /> > </checker> > <checker type="output-contains" command="ls /usr/include/" hint="expat-devel 依赖库未安装"> > <keyword regex="expat.h" /> > </checker> > <checker type="output-contains" command="ls /usr/include/" hint="openssl-devel 依赖库未安装"> > <keyword regex="openssl" /> > </checker> > <checker type="output-contains" command="ls /usr/include/" hint="gettext-devel 依赖库未安装"> > <keyword regex="gettext-po.h" /> > </checker> > <checker type="output-contains" command="ls /usr/include/" hint="zlib-devel 依赖库未安装"> > <keyword regex="zlib.h" /> > </checker> > <checker type="output-contains" command="ls /usr/share/perl5/vendor_perl/ExtUtils" hint="编译工具"> > <keyword regex="MakeMaker" /> > </checker> ### 下载 git 选一个目录,用来放下载下来的安装包,这里将安装包放在 [/usr/local/src][locate_src] 目录里 > <locate for="locate_src" path="/usr/local/src" hint="下载的源码包将放在这里"></locate> ``` cd /usr/local/src ``` 到官网找一个新版稳定的源码包下载到 `/usr/local/src` 文件夹里 ``` wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz ``` > <checker type="output-contains" command="ls /usr/local/src" hint="下载的源码包放在 /usr/local/src 目录"> > <keyword regex="git-2.10.0.tar.gz" /> > </checker> ### 解压和编译 解压下载的源码包 ``` tar -zvxf git-2.10.0.tar.gz ``` 解压后进入 git-2.10.0 文件夹 ``` cd git-2.10.0 ``` 执行编译 ``` make all prefix=/usr/local/git ``` 编译完成后, 安装到 /usr/local/git 目录下 ``` make install prefix=/usr/local/git ``` > <checker type="output-contains" command="ls /usr/local/git/bin/" hint="编译与安装 Git"> > <keyword regex="git" /> > </checker> ## 配置环境变量 > <time>5min ~ 10min</time> ### 将 git 目录加入 PATH 将原来的 PATH 指向目录修改为现在的目录 ``` echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc ``` 生效环境变量 ``` source /etc/bashrc ``` 此时我们能查看 git 版本号,说明我们已经安装成功了。 ``` git --version ``` > <checker type="output-contains" command="cat /etc/bashrc" hint="配置环境变量"> > <keyword regex="/usr/local/git/bin" /> > </checker> ## 创建 git 账号密码 > <time>5min ~ 10min</time> ### 创建 git 账号 为我们刚刚搭建好的 git 创建一个账号 ``` useradd -m gituser ``` 然后为这个账号设置密码[:question][pwd] ``` passwd gituser ``` > <bubble for="pwd">控制台输入创建密码后,输入您自定义的密码,并二次确认。</bubble> > <checker type="output-contains" command="cat /etc/passwd" hint="添加用户 gituser"> > <keyword regex="gituser" /> > </checker> ## 初始化 git 仓库并配置用户权限 > <time>5min ~ 10min</time> ### 创建 git 仓库并初始化 我们创建 [/data/repositories][locate_git] 目录用于存放 git 仓库 ``` mkdir -p /data/repositories ``` > <locate for="locate_git" path="/data/repositories" hint="git 文件夹下"></locate> 创建好后,初始化这个仓库 ``` cd /data/repositories/ && git init --bare test.git ``` > <checker type="output-contains" command="ls /data/repositories/test.git" hint="添加用户 gituser"> > <keyword regex="description" /> > </checker> ### 配置用户权限 给 git 仓库目录设置用户和用户组并设置权限 ``` chown -R gituser:gituser /data/repositories ``` ``` chmod 755 /data/repositories ``` [查找 git-shell 所在目录][git-shell-location] , 编辑 [/etc/passwd][locate_pwd] 文件,将最后一行关于 `gituser` 的登录 shell 配置改为 git-shell 的目录[:question][ssh]如下 ```conf /// <example verb="edit" file="/etc/passwd" /> gituser:x:500:500::/home/gituser:/usr/local/git/bin/git-shell ``` > <bubble for="git-shell-location">如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 `which git-shell` 命令查看位置</bubble> > <locate for="locate_pwd" path="/etc/passwd" hint="修改这个文件的内容"/> > <bubble for="ssh">安全目的, 限制 git 账号的 ssh 连接只能是登录 git-shell</bubble> > <checker type="output-contains" command="cat /etc/passwd" hint="修改 gituser 的登录 shell"> > <keyword regex="gituser:x:500:500::/home/gituser:/usr/local/git/bin/git-shell" /> > </checker> ### 使用搭建好的 Git 服务 克隆 test repo 到本地 ``` cd ~ && git clone gituser@${runtime.vars.cvmIpAddress}:/data/repositories/test.git ``` > <checker type="output-contains" command="ls ~" hint="克隆 test 仓库"> > <keyword regex="test" /> > </checker> ### 实验完成 恭喜,Git 服务器搭建完成, 从此以后你可以方便地将你的本地代码提交到 Git 服务器托管了