🐇明明跟你说过:个人主页
🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅
🔖行路有良友,便是天堂🔖
一、引言
1、Gitea的起源
Gitea是一个基于Go语言开发的开源自助Git服务,它是Gogs的一个分支(或者说是一个社区驱动的Fork)。Gogs是一款轻量级的自助Git服务,最初由Unknwon开发,于2014年5月发布首个版本。然而,由于Gogs项目的一些社区成员对项目的发展方向和功能有不同的看法,并希望推动一些新的特性和改进,因此一些社区成员选择从Gogs分叉出一个新的项目,这就是Gitea。
Gitea的开发始于2016年11月,最初由社区的一些活跃成员发起并推动,他们致力于构建一个更加灵活、稳定和功能丰富的自助Git服务。Gitea的开发一直由社区的志愿者贡献代码和维护,因此它成为了一个受欢迎的开源项目,并在开源社区中得到了广泛的应用和认可。
2、为什么要使用版本控制系统
版本控制系统(Version Control System,VCS)是一种管理文件版本的工具,它可以帮助团队协作开发,追踪文件变更历史,并且有效地管理代码库。
以下是使用版本控制系统的几个主要原因:
- 版本管理:版本控制系统允许开发人员追踪文件的每个版本和变更,包括修改、添加和删除操作。这样可以确保团队成员了解每个文件的历史变更情况,方便追溯问题和恢复历史版本。
- 团队协作:多人协作开发时,版本控制系统可以确保团队成员之间的代码同步和协作顺利进行。开发人员可以轻松地共享和合并彼此的代码变更,减少冲突和重复劳动。
- 备份和恢复:版本控制系统提供了一种备份和恢复文件的方法,即使发生意外或者错误操作,团队也可以轻松地恢复到之前的稳定状态。
- 分支管理:版本控制系统允许开发人员创建分支,这样可以在不影响主线开发的情况下进行独立的功能开发或者实验性工作。分支可以随时合并回主线开发,保持代码库的整洁和稳定。
- 代码审查:通过版本控制系统,团队可以方便地进行代码审查,提高代码质量和安全性。开发人员可以提交代码变更请求,其他团队成员进行审查并提供反馈意见,确保代码符合规范和最佳实践。
二、Gitea基础介绍
1、Gitea是什么
Gitea是一个开源的自托管 Git 服务,类似于 GitHub、GitLab 等平台。它提供了一整套完整的版本控制系统和协作开发工具,使团队能够轻松地托管、管理和协作开发项目。
以下是 Gitea 的一些主要特性:
- 轻量级:Gitea 是一个轻量级的 Git 服务,提供了快速、稳定的代码托管和协作开发环境。
- 易于安装和部署:Gitea 提供了简单易用的安装和部署方式,可以在各种操作系统上快速搭建自己的 Git 服务。
- 自托管:Gitea 支持自托管,用户可以在自己的服务器上部署和管理 Gitea 实例,完全掌控自己的代码和数据。
- 多用户支持:Gitea 支持多用户管理,可以创建多个用户账号,并且为不同的用户分配不同的权限和角色。
- 团队协作:Gitea 提供了团队协作和代码审查功能,支持代码分支、合并请求、问题跟踪等工作流程,方便团队成员之间的协作开发。
- 轻量级界面:Gitea 的用户界面简洁清晰,操作简单易懂,适合开发者和团队快速上手使用。
- 社区支持:Gitea 是一个活跃的开源项目,拥有一个热情的社区,提供了丰富的文档、教程和支持资源,方便用户学习和使用。
Gitea 是一个功能全面、易于安装和部署、轻量级且自由的自托管 Git 服务,适用于个人开发者、小团队和企业,帮助用户高效管理和协作开发软件项目。
2、Gitea与其他版本控制系统的比较(GitLab, GitHub等)
Gitea、GitLab 和 GitHub 都是流行的版本控制系统,它们在某些方面有所不同。
1. 功能特点:
- Gitea:轻量级的 Git 服务,提供基本的代码托管、问题跟踪、团队协作等功能,适合个人开发者和小团队使用。
- GitLab:功能丰富的全面开源平台,提供了包括代码托管、CI/CD、问题跟踪、Wiki 等在内的一系列功能,适合中小型企业和大型团队使用。
- GitHub:全球最大的代码托管平台,提供了强大的社交功能和广泛的集成,是开源社区、个人开发者和企业最受欢迎的版本控制系统之一。
2. 部署方式:
- Gitea:轻量级、易于部署,可以在个人服务器上快速搭建。
- GitLab:功能丰富,部署和配置相对复杂,适合需要定制化和扩展性的场景。
- GitHub:作为托管服务,无需用户自行部署,但提供了企业版 GitHub Enterprise,可以在私有环境中部署。
3. 扩展性:
- Gitea:作为轻量级的 Git 服务,扩展性较有限,但支持丰富的插件和自定义配置。
- GitLab:提供了丰富的集成和扩展功能,可以满足不同规模和需求的团队。
- GitHub:提供了大量的集成和第三方应用,但定制化程度相对较低。
4. 社区支持:
- Gitea:作为一个相对较新的项目,社区规模相对较小,但活跃度不断增加。
- GitLab:拥有庞大的社区支持和活跃的开发者社区,提供了丰富的文档和支持资源。
- GitHub:拥有庞大的开发者社区和全球范围的用户基础,是开源社区的首选平台之一。
5. 商业化支持:
- Gitea:目前主要由社区贡献者维护,没有官方的商业支持。
- GitLab:提供了企业版和托管服务 GitLab.com,以及专业的技术支持和咨询服务。
- GitHub:作为微软旗下的产品,提供了企业版 GitHub Enterprise 和 GitHub Actions 等商业化服务。
三、在Centos上安装Gitea
1、安装Mysql数据库
在使用 Gitea 前,我们需要准备一个数据库。Gitea 支持 PostgreSQL(>=10)、MySQL(>=5.7)、SQLite 和 MSSQL(>=2008R2 SP3)这几种数据库。
在Centos上安装MySQL
[root@gitea ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
[root@gitea ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@gitea ~]# yum install mysql-server -y
修改属主属组
[root@gitea ~]# chown mysql:mysql -R /var/lib/mysql
初始化数据库
[root@gitea ~]# mysqld --initialize
启动数据库
[root@gitea ~]# systemctl start mysqld
设置root密码
[root@gitea ~]# mysqladmin -u root password "111111"
登录数据库
[root@gitea ~]# mysql -uroot -p111111
设置使用新的加密算法
mysql> SET old_passwords=0;
创建了一个名为 'gitea' 的用户,并将其密码设置为 'gitea'。
mysql> CREATE USER 'gitea' IDENTIFIED BY 'gitea';
添加权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'gitea'@'localhost' IDENTIFIED BY 'gitea' WITH GRANT OPTION;
使用 UTF-8 字符集和排序规则创建数据库
mysql> CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
设置权限
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
mysql> FLUSH PRIVILEGES;
mysql> exit
2、二进制安装Gitea
下载二进制包《gitea-1.21.4-linux-amd64》
添加执行权限
[root@gitea ~]# chmod +x gitea-1.21.4-linux-amd64
安装git
[root@gitea ~]# yum install git -y
#添加用户
[root@gitea ~]# adduser \
> --system \
> --shell /bin/bash \
> --comment 'Git Version Control' \
> --gid git \
> --home-dir /home/git \
> --create-home \
> git
#创建工作路径
[root@gitea ~]# mkdir -p /var/lib/gitea/{custom,data,log}
[root@gitea ~]# chown -R git:git /var/lib/gitea/
[root@gitea ~]# chmod -R 750 /var/lib/gitea/
[root@gitea ~]# mkdir /etc/gitea
[root@gitea ~]# chown root:git /etc/gitea
[root@gitea ~]# chmod 770 /etc/gitea
#配置Gitea工作路径
[root@gitea ~]# export GITEA_WORK_DIR=/var/lib/gitea/
#复制二进制文件到全局位置
[root@gitea ~]# cp gitea-1.21.4-linux-amd64 /usr/local/bin/gitea
启动Gitea
gitea不允许使用root用户运行,所以要先将用户切换为我们刚刚创建的普通用户,不然运行的时候会报错
[root@gitea gitea]# su git
[git@gitea gitea]$ GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini
出现如下界面则说明启动成功
3、配置Gitea
在浏览器输入IP地址+3000端口,访问Gitea的Web界面
在配置页面,添加我们刚刚创建的数据库信息
然后点击立即安装
四、Gitea的使用与操作
1、创建仓库
进入到首页后,点击右上角,创建一个新账户,然后再点击右上角的加号新建一个仓库
2、代码提交
在安装了git bash的电脑上操作,这里我们以go语言为例
打开goland,打开终端进入到项目路径下,在终端输入
git init
git checkout -b main
git add README.md
git commit -m "first commit"
git remote add origin http://192.168.40.133:3000/liming/test.git
git push -u origin main
即可将本地代码推送至Gitea
3、Gitea Bash 常用命令
进入 Gitea 安装目录:
cd /path/to/gitea
启动 Gitea 服务:
./gitea web
创建一个新的 Gitea 仓库:
./gitea repo create <repository_name>
克隆一个已存在的 Gitea 仓库:
git clone http://<your_gitea_server>/<your_username>/<repository_name>.git
添加一个 Gitea 仓库远程地址:
git remote add origin http://<your_gitea_server>/<your_username>/<repository_name>.git
推送本地代码到 Gitea 仓库:
git push -u origin master
拉取 Gitea 仓库最新代码到本地:
git pull origin master
查看 Gitea 仓库状态:
git status
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Gitea的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!
版权归原作者 明明跟你说过 所有, 如有侵权,请联系我们删除。