基于CentOS搭建 Git 服务

Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

官方安装详细介绍 https://git-scm.com/download/linux

本文介绍通过源码安装

1、下载安装 git

此实验以 CentOS 7.2 x64 的系统为环境,搭建 git 服务器。

1.1 安装依赖库和编译工具

为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

1.2 安装编译工具

yum install gcc perl-ExtUtils-MakeMaker

1.3 下载 git

选一个目录,用来放下载下来的安装包,这里将安装包放在 /home/javen/Downloads目录里

cd /home/javen/Downloads

到官网https://git-scm.com找一个新版稳定的源码包下载到/home/javen/Downloads文件夹里 目前最新版本为2.13.3

wget https://www.kernel.org/pub/software/scm/git/git-2.13.3.tar.gz

1.4 解压和编译

解压下载的源码包

tar -zvxf git-2.13.3.tar.gz

解压后进入 git-2.13.3 文件夹

cd git-2.13.3

执行编译

make all prefix=/usr/local/git

编译完成后, 安装到 /usr/local/git 目录下

make install prefix=/usr/local/git

2、配置环境变量

创建文件/etc/profile.d/git.sh,将下面的内容复制到该文件

export PATH=$PATH:/usr/local/git/bin:$PATH

生效环境变量

source  /etc/profile

或者

echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

生效环境变量

source /etc/bashrc  

此时我们能查看 git 版本号,说明我们已经安装成功了。

git --version

查看git版本

3、创建 git 账号密码

为我们刚刚搭建好的 git 创建一个账号

useradd -m gituser

然后为这个账号设置密码

passwd gituser    #这里设置的密码为javen

4、初始化 git 仓库并配置用户权限

4.1创建 git 仓库并初始化

我们创建 /data/repositories 目录用于存放 git 仓库

mkdir -p /data/repositories

创建好后,初始化这个仓库

cd /data/repositories/ && git init --bare test.git

初始化 git 仓库

4.2 配置用户权限

  • 给 git 仓库目录设置用户和用户组并设置权限
chown -R gituser:gituser /data/repositories
chmod 755 /data/repositories
  • 修改 gituser 的登录 shell

查找 git-shell 所在目录(如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 which git-shell 命令查看位置) , 编辑 /etc/passwd 文件,将最后一行关于 gituser 的登录 shell 配置改为 git-shell 的目录

gituser:x:500:500::/home/gituser:/usr/local/git/bin/git-shell

修改 gituser 的登录 shell

5、使用搭建好的 Git 服务

git clone gituser@10.211.55.3:/data/repositories/test.git

使用搭建好的 Git 服务

遗留问题: 1、有没有什么好的Web插件来管理git用户以及项目呢? 2、gosoGitLabGit比起来有何优缺点?

推荐视频 Android通用框架设计与完整电商APP开发

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏源码之家

mysql导入数据库文件最大限制更改解决方法

16440
来自专栏逸鹏说道

Linux登录那点事

跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 我们登录linux的时候基本上不太关注...

34550
来自专栏CDN及云技术分享

如何通过命令行访问unix socket文件

socket文件不能通过普通的文件读写命令操作(比如说echo "xxx" > socket.file)它。因为它是在网络上面工作的。只能通过socket读写函...

1.9K270
来自专栏电光石火

CentOS挂载硬盘

第一步:列出所有磁盘  命令:  ll /dev/disk/by-path ? 提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从...

90780
来自专栏Java技术栈

Maven精选系列--介绍与安装

Maven介绍 Maven是一个项目管理工具,用来管理项目的生命周期,如项目中各个项目之间的依赖管理,项目中使用到的jar包依赖管理,还有许多项目构建的插件等。...

28670
来自专栏抠抠空间

linux彻底删除nginx

1.3K30
来自专栏运维小白

4.7/4.8 磁盘挂载

只有格式化后,才能挂在文件系统 先把磁盘中的分区删除(不管是否分区,都可格式化) 然后格式化文件系统,mkfs.xfs /dev/sdb [root@hf-01...

43590
来自专栏爱撒谎的男孩

Linux使用

53330
来自专栏林冠宏的技术文章

浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号。有所收获。这里总结下个人经验。 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  ...

1.1K100
来自专栏JetpropelledSnake

网络安全之在Kali Linux上安装Openvas

本文目录:   一、解决和配置更新源问题   二、安装Openvas   三、自定义登陆密码   四、升级Openvas    五、查看Openvas运行情况 ...

38850

扫码关注云+社区

领取腾讯云代金券