Gitblit迁移Gitea
发布于2022-09-06 23:25:09,更新于2024-06-25 09:34:40,标签:devops git hexo 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog在给甲方讲述svn和git的区别时,发现对svn了解不太够,以至于两者的区别没说清楚,此处简单记录下。
Git与SVN都是常见的版本控制系统,区别如下
分布式 vs 集中式
- Git是一种分布式版本控制系统。每个机器都有独立的仓库,即使没有网络也可以进行同步操作。
- SVN是一种集中式版本控制系统。所有代码都存储在中央服务器上,开发者通过客户端与中央服务器进行交互。
分支模型
- Git鼓励频繁地创建和合并分支,因为分支的创建和合并操作非常轻量级。
- SVN的分支操作较重,创建和合并分支均需在服务器上进行,会占用较多的服务器资源。
提交模型
- Git使用快照模型。每次提交都会保存文件状态的快照,这意味着每次提交都是一个完整的文件快照。
- SVN使用增量模型,每次提交只会记录文件的变化,这意味着每个提交只包含发生变化的文件差异。
性能
- Git在大型项目中性能表现通常比SVN更好,因为Git的分布式性质,就减少了与中央服务器的交互。
- SVN在处理大型文件和代码库时,会严重占用中央服务器的资源。
Gitblit、Gitlab、Gitea,之前一直使用的Gitblit,相对来说,是目前所有GitServer中,最具性价比的。
但是后来服务器也更换了,所以就想找一个性价比次高的平台,那就是Gitea了。
一、安装
官网链接从二进制安装 - Docs
首先Gitea需要git版本2以上的,Centos7默认自带的是git1.8,所以需要更新yum存储库。
1 | yum -y install \ |
搜索Git并安装合适版本
1 | yum search git|grep 'Fast Version Control System' |
下载并安装gitea
1 | curl -L -o /usr/local/bin/gitea https://dl.gitea.io/gitea/1.17.1/gitea-1.17.1-linux-amd64 |
默认端口是3000,如果要更改,采用如下命令
1 | cat > /etc/gitea/app.ini <<EOF |
安装完成之后,需要将gitea配置成服务
1 | cat > /usr/lib/systemd/system/gitea.service <<EOF |
之后就正常作为服务操作
1 | systemctl start|stop|restart|status|enable|disable gitea |
二、Hook钩子
使用Git的Hook钩子,实现push操作后,服务器自动将上传内容部署到博客的路由下。
由于使用Gitblit习惯了,找了半天Gitea上面,都没找到hooks,原来是需要直接在仓库下面配置。而不是其他平台在网页配置。
以我仓库为例
1 | cd /var/lib/gitea/data/gitea-repositories/meethigher/blog.git/hooks/post-receive.d |
创建一个push后要触发的hook钩子脚本
1 | cat > /var/lib/gitea/data/gitea-repositories/meethigher/blog.git/hooks/post-receive.d/post-receive <<EOF |
一定要添加执行权限
1 | chmod +x /var/lib/gitea/data/gitea-repositories/meethigher/blog.git/hooks/post-receive.d/post-receive |
然后重启gitea
1 | systemctl restart gitea |
push上传测试一下,查看git服务端返回内容
三、参考
打赏