官网

官方网站:https://about.gitea.cn/
官方文档:https://docs.gitea.cn/
官方下载地址:https://dl.gitea.com/gitea/

各版本控制软件对比

对比项SVNGitMercurialPerforce
版本控制类型集中式(依赖中央服务器)分布式(本地完整版本库)分布式集中式(企业级)
服务端
(代码托管中心)
Apache SubversionGitea、Gogs、GitLab、GitHubRhodeCode、Mercurial ServerHelix Core
客户端TortoiseSVN都依赖命令行的Git运行:
Git Bash、TortoiseGit、SourceTree
hg、TortoiseHgP4V
Eclipse 插件Subclipse、SubversiveEGitMercurialEclipsePerforce Plugin
IDEA 插件SubversionGitMercurialPerforce
核心特点集中管理,目录级权限控制,简单直接,适合文档、非代码类版本管理本地有完整仓库,分支灵活高效,适合多人协作、开源与现代软件开发分布式,命令简洁,跨平台,学习曲线比 Git 平缓,生态较小企业级集中式,大文件、二进制支持强,权限精细,多用于游戏、大型工业项目
个人部署服务端推荐VisualSVN ServerGitea一般复杂,不推荐个人部署
部署特点VisualSVN Server:轻量服务端,配置简单,但是只有WIndows端
svnserve:跨平台,命令行
Gitea:个人部署天花板推荐
Gogs:比 Gitea
GitLab:相对更重量,麻烦些
服务端部署简单,但生态和工具链不如 Git 丰富服务端重、配置复杂,运维成本高,个人/小团队不适用

使用docker安装

1.安装并运行Gitea

#创建目录
sudo mkdir -p /service/docker/gitea

#分配权限
sudo chown -R ubuntu:ubuntu /service/docker/gitea

首次运行 Gitea 容器

docker run -d \
  --name gitea \
  --restart unless-stopped
  -p 3000:3000 \
  -v /service/docker/gitea:/data \
  gitea/gitea:latest
参数作用
-d后台运行(daemon)
--name gitea容器命名为 gitea(方便管理)
--restart unless-stopped设置自动重启
-p 3000:3000将宿主机 3000 端口映射到容器 3000 端口
-v /service/docker/gitea/data挂载数据目录(必须)
gitea/gitea:latestGitea 官方镜像(获取官方镜像)

2.登陆页面

网络通都能打开,只是管理员登陆和非管理员登陆权限不通

#本地访问
http://localhost:3000

#宿主机访问
#每个人的地址不一样,看你虚拟机的IP
http://192.168.140.129:3000

首次打开进行配置
其他的不用动,设置好管理员和管理员密码
在这里插入图片描述

3.重启

不需要重启,这里只是列一下命令

# 查看所有容器(包括停止的)
docker ps -a

#停止容器
docker stop gitea

# 示例:重新启动my-nginx容器
docker start gitea

# 查看容器启动日志(排查启动失败问题)
docker logs gitea

基础设置

1.查看配置文件地址

管理员登陆之后查看配置文件地址
我这里是:/data/gitea/conf/app.ini
因为运行在docker上,所以实际路径是容器启动时挂载的路径:/service/docker/gitea/gitea/conf/app.ini

在这里插入图片描述

2.修改配置文件

# 进入配置文件目录
cd /service/docker/gitea/gitea/conf

#设置仅能管理员新建用户
sudo sed -i 's/DISABLE_REGISTRATION = false/DISABLE_REGISTRATION = true/' app.ini
#设置OAUTH_USER匹配的用户名
#不设置会导致只要有一个密码与现有用户的密码相同就能通过验证
sudo sed -i '/^\[server\]/a OAUTH_USER = admin' app.ini

#重启生效
docker restart gitea

3.新建用户

在这里插入图片描述
在这里插入图片描述
上面两项不用动,输入信息创建就行
在这里插入图片描述

仓库管理

1.创建仓库

在这里插入图片描述
仓库名称与你的项目名称一致
设置为私有,控制权限
这时候别人登陆是看不到这个仓库的

在这里插入图片描述

增加协作者,可以给别人修改这个仓库的权利,并且能对协作者进行权限管理
在这里插入图片描述

2.创建分支

进到仓库的分支选项创建分支
在这里插入图片描述

3.设置保护分支

添加规则
在这里插入图片描述
设置main分支为受保护的分支
在这里插入图片描述

设置合并请求批准为1
审批人设置为管理员(自己)
在这里插入图片描述

4.查看服务器中的仓库

#查看仓库存储位置设置
cat /service/docker/gitea/gitea/conf/app.ini | grep -A 5 "\[repository\]"
#找不到的话可以直接S搜索
sudo find /service/docker/gitea -name "*.git" -type d

#按照上面的安装步骤实际的路径为
/service/docker/gitea/git/repositories/admin/gientXXXX.git

5.删除分支

在这里插入图片描述

代码

1.首次上传

项目文件夹右键:Open Git Bash Here
在这里插入图片描述

依次执行下面命令

#初始化本地仓库
git init
#添加全部代码到暂存区
git add .
#提交代码到本地仓库
git commit -m "first commit"
#绑定远程仓库地址
#例如:git remote add origin http://192.168.140.130:3000/admin/XXX.git
git remote add origin 远程仓库的地址
#推送代码到远程仓库的master分支
git push -u origin master


#新仓库推送不了的话可以强制推送
#谨慎操作,会覆盖
git push -f origin master

#将本地的 master 分支关联到远程的 origin/master
git branch --set-upstream-to=origin/master master

在这里插入图片描述
最后一条命令会弹出页面要求进行验证
在这里插入图片描述

2.TortoiseGit使用http拉取代码

在这里插入图片描述
在这里插入图片描述
首次拉取时,会先弹出Gitea登陆的页面,登陆之后会让授权
授权之后会保存到Windows凭据,之后就不需要登陆了
如果需要切换用户,需要先删除Windows凭据

在这里插入图片描述
无权限时会报错找不到仓库
在这里插入图片描述

3.eclipse使用插件拉取代码

先新建好工作空间,例如:D:\Develop\eclipse workspace\WeChat
建议每个项目有个单独的工作空间
在这里插入图片描述

4.新建文件上传

新建的文件会是问号?代表没有纳入版本管理,选中之后右键Git添加

在这里插入图片描述
在这里插入图片描述

添加之后变成感叹号!代表已修改
然后直接提交就行

在这里插入图片描述

5.各图标含义

在这里插入图片描述

卸载gitea

#停止容器
docker stop gitea

#查看容器状态
docker ps -a

# 彻底删除容器
docker rm gitea

#删除镜像
docker rmi gitea

根据上面的配置文件的地方,把配置文件删除

sudo rm -rf gitea

服务器间迁移

迁移时数据文件单独迁移,Docker镜像自行下载
把配置文件打包进镜像会导致无法动态修改配置
避免破坏 Docker 设计原则:Docker 镜像应仅包含应用程序,不包含运行时数据(如配置、数据库)

# 进入数据目录
cd /service/docker

# 打包整个 Gitea 数据目录
sudo tar -czvf gitea_data.tar.gz gitea

在新服务器解压并启动

# 1. 创建目录并解压
cd /service
sudo mkdir -p docker
sudo tar -xzvf /home/ubuntu/gitea_data.tar.gz -C /service/docker

# 2. 启动容器(自动拉取镜像)
docker run -d \
  --name gitea \
  -p 3000:3000 \
  -v /service/docker/gitea:/data \
  gitea/gitea:latest

解决问题

1.关于提交作者的显示

先说总结:作者可以随便写,提交者只能是Gitea的用户

实测,仓库里面的提交记录是根据用户的邮箱匹配的
邮箱匹配到就会显示头像
匹配不到就默认显示,因为作者也是能手动修改的的,没什么限制
所以看提交记录还是要去主页面看,那里显示的是正常的用户名和头像

仓库显示的作者:是客户可以随意修改的信息
在这里插入图片描述
在这里插入图片描述

主页面显示的是Gitea服务器的用户
在这里插入图片描述

更多推荐