1385 字
7 分钟
Gitea与Git配置

前言#

Gitea是一个轻量级的Git代码托管服务,功能和Github、GitLab类似,可以用来搭建自己的私有仓库。

这篇文章主要记录本地Git连接Gitea时需要做的配置,包括用户名邮箱、SSH密钥、仓库推送和常见报错处理。

安装Git#

Windows可以直接去Git官网下载Git for Windows。安装时如果不确定选项,基本保持默认即可。安装完成后,建议右键打开Git Bash执行后面的Git和SSH命令,这样Linux里的大部分命令都能直接使用。

如果习惯用PowerShell,也可以使用Git,但部分命令写法会不同,后面会单独标出来。

Linux一般用系统包管理器安装:

Terminal window
# Debian / Ubuntu
sudo apt install git
# Arch Linux
sudo pacman -S git
# Fedora
sudo dnf install git

安装完成后检查版本:

Terminal window
git --version

配置Git用户名和邮箱#

这一步会影响提交记录里显示的作者信息。

Terminal window
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

查看配置:

Terminal window
git config --global --list

如果只想给当前仓库单独设置,不要加--global

Terminal window
git config user.name "你的用户名"
git config user.email "你的邮箱"

生成SSH密钥#

推荐使用SSH连接Gitea,这样以后推送代码不用每次输入账号密码。

先检查本机是否已经有SSH密钥。

Linux、macOS、Windows Git Bash:

Terminal window
ls ~/.ssh

Windows PowerShell:

Terminal window
dir $env:USERPROFILE\.ssh

如果已经有id_ed25519.pubid_rsa.pub,可以直接使用现有公钥。没有的话生成一个新的:

Terminal window
ssh-keygen -t ed25519 -C "你的邮箱"

一路回车即可。Windows默认也会生成到C:\Users\你的用户名\.ssh\目录。

生成完成后查看公钥。

Linux、macOS、Windows Git Bash:

Terminal window
cat ~/.ssh/id_ed25519.pub

Windows PowerShell:

Terminal window
type $env:USERPROFILE\.ssh\id_ed25519.pub

复制输出的整行内容,注意是.pub结尾的公钥,不要把私钥复制出去。

在Gitea添加SSH公钥#

登录Gitea后,进入用户设置,找到SSH/GPG密钥,将刚刚复制的公钥添加进去。

添加完成后,在本地测试连接:

Terminal window
ssh -T git@你的Gitea域名

例如:

Terminal window
ssh -T git@git.example.com

第一次连接会提示是否信任主机,输入yes即可。

如果能看到类似欢迎信息,说明SSH配置成功。

配置Windows换行#

Windows默认换行是CRLF,Linux默认是LF。如果项目里多人协作,建议先设置Git的换行处理。

Terminal window
git config --global core.autocrlf input

创建并推送新仓库#

先在Gitea网页端新建一个空仓库,创建时建议先不要勾选初始化README,这样本地推送最简单。

然后在本地项目目录执行:

Terminal window
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin git@你的Gitea域名:用户名/仓库名.git
git push -u origin main

如果Gitea给你的默认分支是master,也可以把上面的main换成master

克隆已有仓库#

如果仓库已经存在,直接复制Gitea页面上的SSH地址:

Terminal window
git clone git@你的Gitea域名:用户名/仓库名.git

进入目录后就可以正常拉取和推送:

Terminal window
cd 仓库名
git pull
git push

HTTPS方式#

如果不想配置SSH,也可以使用HTTPS地址:

Terminal window
git clone https://你的Gitea域名/用户名/仓库名.git

但是现在很多Git服务不再推荐直接用账号密码推送,通常需要使用访问令牌。Gitea可以在用户设置里创建Access Token,然后推送时用Token代替密码。

修改远程仓库地址#

查看当前远程地址:

Terminal window
git remote -v

如果之前用了HTTPS,想改成SSH:

Terminal window
git remote set-url origin git@你的Gitea域名:用户名/仓库名.git

再次检查:

Terminal window
git remote -v

多个Git账号配置#

如果同时使用Github和自己的Gitea,建议给不同服务配置不同密钥。

先生成一个专门给Gitea用的密钥:

Terminal window
ssh-keygen -t ed25519 -C "你的邮箱" -f ~/.ssh/id_ed25519_gitea

然后编辑~/.ssh/config。Windows对应路径是C:\Users\你的用户名\.ssh\config,没有这个文件就新建一个。

Host gitea
HostName 你的Gitea域名
User git
IdentityFile ~/.ssh/id_ed25519_gitea

之后仓库地址可以写成:

Terminal window
git remote set-url origin gitea:用户名/仓库名.git

测试连接:

Terminal window
ssh -T gitea

常见问题#

Permission denied (publickey)#

一般是SSH公钥没有配置好,可以按下面步骤排查:

  1. 确认Gitea里添加的是.pub公钥。
  2. 确认本地远程地址是SSH地址,不是HTTPS地址。
  3. 执行ssh -T git@你的Gitea域名测试连接。
  4. 多密钥环境下检查~/.ssh/config是否写对。

src refspec main does not match any#

通常是本地还没有提交,先提交一次:

Terminal window
git add .
git commit -m "Initial commit"
git push -u origin main

也可能是当前分支不叫main,用下面命令查看:

Terminal window
git branch

failed to push some refs#

远程仓库里已经有提交,而本地没有同步。先拉取:

Terminal window
git pull --rebase origin main

解决冲突后再推送:

Terminal window
git push

端口不是22怎么办#

如果Gitea的SSH端口不是默认的22,比如是2222,仓库地址可以写成:

Terminal window
git clone ssh://git@你的Gitea域名:2222/用户名/仓库名.git

也可以写进~/.ssh/config

Host gitea
HostName 你的Gitea域名
User git
Port 2222
IdentityFile ~/.ssh/id_ed25519_gitea

然后使用:

Terminal window
git clone gitea:用户名/仓库名.git

总结#

日常使用Gitea主要就是三步:

  1. 本地配置Git用户名和邮箱。
  2. 生成SSH密钥并添加到Gitea。
  3. 使用SSH地址克隆或推送仓库。

配置完成后,Gitea和其他Git托管平台的使用方式基本一致,常用命令还是git clonegit pullgit addgit commitgit push

Gitea与Git配置
https://blog.aloys233.top/posts/gitea与git配置/
作者
Aloys23
发布于
2026-05-20
许可协议
CC BY-NC-SA 4.0

评论