GitLab FAQ¶
本页只回答 GitLab / Git / SSH 相关问题。其他问题见 全局 FAQ。
账号¶
为什么注册后不能立即登录?¶
有两个可能的原因,按顺序排查:
- 邮箱还没确认 —— 注册后 GitLab 会发一封确认邮件(发件人显示为
CX-Studio GitLab)。前往企业微信 → 邮箱,点开邮件并点击「确认您的帐户」。 - 还没通过管理员审核 —— 邮箱确认后账号处于 Pending Approval 状态,属正常现象,审核通过后即可登录。
如果两项都完成但等待时间较长,请在社内群联系负责人,不要重复注册账号。
详见 注册与登录。
没有收到确认邮件怎么办?¶
按顺序排查:
- 确认查的是企业微信邮箱。注册用的教育邮箱通过企业微信邮箱收发,请打开企业微信 → 邮箱查看,而不是在其他邮箱客户端里找。
- 等几分钟再刷新。邮件偶尔会有延迟。
- 检查垃圾邮件 / 已拦截目录。校园邮箱的过滤规则比较严格,确认邮件可能被归类到这里。
- 确认注册时填的邮箱没写错。填错只能重新注册,或联系负责人修改。
- 在登录页重新触发。输入邮箱和密码登录,页面会提示邮箱未确认,此时可以重新发送确认邮件。
以上都试过仍未收到,在社内群联系负责人。
确认邮件里的链接过期了怎么办?¶
GitLab 的确认链接有有效期。过期后在登录页重新输入账号密码,页面会提示邮箱未确认并提供重新发送的入口;也可以联系负责人手动确认。
忘记密码怎么办?¶
在登录页点击 Forgot your password?,输入注册邮箱,按邮件提示重置。
如果收不到邮件,先检查垃圾邮件目录;仍然收不到时联系社内负责人处理。
可以修改用户名吗?¶
可以,在 Preferences → Account 中修改。但用户名会出现在仓库地址中,改名后旧地址会失效,请提前通知相关成员。
SSH¶
Permission denied (publickey) 怎么办?¶
按顺序排查:
-
确认已经生成密钥:
-
确认公钥内容已添加到 GitLab 的 Preferences → SSH Keys;
-
确认远程地址用的是 SSH 形式:
应为
git@...或ssh://git@...,而不是https://...; 4. 测试连接:如果提示主机指纹确认,输入
yes。 -
如果使用了自定义文件名(例如
~/.ssh/id_ed25519_cx),需要在~/.ssh/config中声明:
SSH Key 应该上传哪个文件?¶
上传公钥:
不要上传私钥:
只有带 .pub 后缀的才是公钥。
一个账号可以添加多个 SSH Key 吗?¶
可以。每台设备单独生成密钥并分别添加,便于某台设备丢失时单独撤销。
网络¶
为什么校外访问不了 10.223.24.16?¶
10.223.24.16:2201 是 GitLab 的 SSH 内网入口,仅允许校园网环境访问,校外网络无法连接。
校外请使用 HTTPS:
Web 页面 https://git.cx-studio.tech 在校内外都可以访问。
为什么 Git push 很慢?¶
公网访问 GitLab Web 与 HTTPS Git 需要经过 Cloudflare Tunnel,速度受线路与当前网络状况影响,出现延迟是正常现象。
校园网内推荐改用 SSH 内网入口,速度会明显提升:
另外,仓库中若包含大型文件,也会显著拖慢每次操作,见下一条。
为什么不建议提交大型 ZIP / 视频 / 模型?¶
Git 会保存文件的每一次历史版本,仓库体积只增不减。一旦提交:
- 所有人的 clone / pull 都会变慢;
- 即使后来删除了文件,历史记录中依然存在,需要重写历史才能清除;
- 影响是永久的,且清理成本很高。
大型二进制文件请放到对象存储或网盘,仓库中只保留下载链接和说明文档。
Git 使用¶
提交时提示 Please tell me who you are 怎么办?¶
说明还没配置 Git 身份。执行一次:
user.email 要填你在 GitLab 注册的邮箱,否则提交不会关联到你的账号。
详见 Git 基础操作。
为什么提交记录里没有我的头像?¶
GitLab 靠提交里的邮箱匹配账号。邮箱写错、或用了不在 GitLab 账号里的邮箱,提交就会显示成无名无头像的状态。
用下面的命令确认当前配置,不正确就重新设置:
已经提交过的记录不会自动修正,但之后的提交会恢复正常。
协作¶
HTTPS 与 SSH 应该用哪个?¶
推荐 SSH。配置一次即可长期免密使用,且校园网内可以走高速内网入口。
HTTPS 适合临时使用或无法配置 SSH 的场景,但速度受公网线路影响,且需要输入凭据。
main 分支为什么不能直接 push?¶
main 是项目的主分支,代表当前稳定可用的版本。直接 push 会绕过 Code Review,问题可能直接影响所有成员。
正确做法是新建 feat/* 或 fix/* 分支,通过 Merge Request 合并。若误操作导致无法 push,说明保护分支正在生效,这是预期行为。
Merge Request 一直没有人评审怎么办?¶
在社内群提醒对应的 Reviewer。提交 MR 时指定明确的评审人,可以避免被忽略。
推送时提示 non-fast-forward 怎么办?¶
说明远程分支有你本地没有的提交。先拉取再推送:
如果出现冲突,按提示逐个文件解决,解决后继续:
不熟悉冲突处理时,先执行 git status 看清状态,或寻求社内成员协助,不要盲目执行 git push --force。