linux搭建git服务器
安装git
安装git依赖库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
下载git源码包并解压,最新的源码包可以在git官网上找到
wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz
tar -xzvf git-2.28.0.tar.gz
顺序执行以下命令进行编译安装
cd git-2.28.0.tar
make prefix=/usr/local/git all
make prefix=/usr/local/git install
添加环境变量
vim /etc/profile
添加 export PATH="/usr/local/git/bin:$PATH"
添加git用户
创建用户username和用户组gituser
groupadd gituser useradd username -g gituser passwd username
初始化git仓库
首先我们选定一个目录作为Git仓库,假设是/usr/local/github,在/usr/local/github目录下输入命令:
git init --bare
更改git仓库所属用户组
chgrp gituser /usr/local/github
使用chmod命令修改文件的读写权限
将该文件目录的权限为用户组可写
-R表示递归
g 代表所有者所在的组群(group)
w 表示文件可以被写(write)
chmod -R g+w /usr/local/github/
克隆仓库
输入clone命令克隆仓库
$ git clone username@116.62.131.99:/usr/local/github
输入用户密码后返回结果
remote: Counting objects: 5, done. remote: Compressing objects: 100% (3/3), done. remote: Total 5 (delta 0), reused 0 (delta 0) Receiving objects: 100% (5/5), done.
提交文件
使用add命令将文件加入暂存区
$ git add test3.txt
使用commit命令提交文件
$ git commit -m"测试提交文件"
返回结果

将文件推送至服务器
$ git push
输入用户密码后返回结果
Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 196 bytes | 196.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To 116.62.131.98:/usr/local/github * [new branch] master -> master
要注意,如果没有修改用户对文件的可读写权限,将会返回
Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 196 bytes | 196.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: remote unpack failed: unpack-objects abnormal exit To 116.62.131.98:/usr/local/github ! [remote rejected] master -> master (unpacker error) error: failed to push some refs to 'username@116.62.131.98:/usr/local/github'
Git 服务器搭建完成

浙公网安备 33010602011771号