前言
昨天已经完成了再 Linux 上搭建最新版的 git。单单只有个 git,创建了项目也不能和其他伙伴协作,今天开始将如何在服务器上开启一个常态化的 git 私有仓库服务,通过 git 协议进行项目的协作开发。
正文
1. 复习 git 安装
1)将最新版 git 源码从昨天测试的服务器拷贝过来。
进入 git 源码所在目录
cd /usr/local/
执行远程拷贝命令
scp -r git-2.33.1.tar.gz root@123.207.90.227:/usr/local/
2)这里我们吸取昨天教训,在执行编译命令之前把缺失的依赖提前安装上,再对照昨天的教程安装最新版 git。
yum install curl-devel expat-devel -y
很好这次中途没有报错,直接装完了。
2.初始化私有仓库
服务器切换到 git 用户,没有 git 用户可以执行下面的命令创建一个
useradd git passwd git
进入 git 用户的家目录
cd /home/git
执行初始化命令(-- bare 表示)
git init --bare --shared
--bare 参数表示创建一个空仓库
--shared 表示共享这个仓库
3.初始化一个测试项目
创建测试项目
mkdir project_test && cd project_test && git init cd ~ && git clone --bare --shared project_test project_test.git
结果校对
4.开启 git daemon 守护进程
在云服务器测试需要提前开启端口,不会的找下云服务商的文档
腾讯云开启 9418 端口
启动
git daemon --reuseaddr --base-path=/home/git --export-all --verbose --enable=receive-pack
启动完成
windows上验证是否成功
克隆私有仓库里的项目,下载完成之后,在项目里新增一个 1.txt 用于验证。
git status:查看本地仓库文件的暂存状态
git add:新增文件到本地 git 仓库
git commit:提交更新
git push:推送到远程仓库
推送到私有仓库成功
可以看到推送也显示成功了。现在在 windows 上新开一个窗口,执行 git clone 命令拉去最新的项目,看看有没有 1.txt。
验证通过
可以看到新开的窗口里也包含刚刚推送的文件,OK。
5.巨坑记录
在 push 数据时,我出现了如下错误(现象就是卡主,不动),
Counting objects: 8, done. Compressing objects: 100% (3/3) done, Writing objects: 100% (6/6)
根据网上教程,我在服务端执行了下下述命令,
git config --global sendpack.sideband false
结果并没有什么用!!!(好久搞不定,都快怀疑人生了)
这里注意了,遇到这个问题时,一定是要在客户端执行,比如我的 git 客户端在 windows 电脑上,那就应该在 windows 电脑上执行!!!