移动办公越来越普遍,直接用手机在GitHub上创建仓库已经不是什么稀罕事。但不少人在手机浏览器或GitHub App里点下创建按钮后,迎来的不是新建成功页面,而是一串刺眼的错误提示——422 Unprocessable Entity。这个错误不会告诉你具体哪里出了问题,页面往往只是刷新一下或者弹出一句含糊的报错,让人摸不着头脑。这篇文章就来系统梳理422错误的产生原因和解决办法,帮你彻底告别这个问题。

422错误到底是什么,为什么会出现在创建仓库时
要解决问题,先得理解问题的本质。HTTP状态码422的含义是Unprocessable Entity,也就是服务器收到了你的请求,请求本身的语法格式没问题,但内容里的某些数据无法被处理。和常见的400错误(请求格式错误)或403错误(权限不足)不同,422更多指向提交的数据内容违反了服务端的业务规则。
放到GitHub创建仓库这个场景里,触发422的原因通常有这么几类。第一种是仓库名称不合法,比如包含了中文、空格、特殊符号,或者名称结尾误带了空格。GitHub的仓库名只允许字母、数字、下划线、连字符和点号,超出这个范围就可能触发服务端校验失败。第二种是名称冲突,如果你的账户下已经存在同名仓库,再次提交同样会失败。第三种是移动端特有的问题——重复提交。手机网络慢时,很多用户会多点几次创建按钮,后端把它当作重复或冲突的请求处理,返回的正是422。
还有一种容易被忽视的情况:移动端浏览器或代理软件篡改了请求体。部分手机浏览器的加速模式、省流功能会对网页请求做压缩或改写,GitHub的表单提交一旦被改写,CSRF令牌或表单字段就可能丢失或错乱,服务器校验不过,直接返回422。
逐项排查:从最常见的原因入手
遇到422错误时,建议按下面的顺序逐项排查,基本能覆盖九成以上的情况。
第一步:检查仓库名称是否符合规范
这是最高频的原因。请确认仓库名只包含英文字母、数字、.、-和_,不能有空格,不能以-或.开头,也不要用中文名称。另外注意检查名称前后有没有不小心带上空格——在手机上输入法切换时这个问题特别常见,肉眼看不出来,但服务端校验会直接失败。
第二步:确认仓库不存在重名
GitHub允许同一账户下的仓库重名,前提是所有者不同(比如个人账户和组织)。但如果你在自己账户下已经有了一个叫demo的仓库,再创建同名的就会失败。最简单的办法是打开自己的仓库列表,搜一下想用的名字,存在重名就换个名字试试。
第三步:清理浏览器数据或换浏览器
移动端浏览器的缓存和Cookie经常是元凶。如果缓存了旧的CSRF令牌,表单提交时校验必然失败。可以按这个思路处理:
- 在浏览器设置中清除GitHub站点的缓存和Cookie,然后重新登录;
- 关闭浏览器的省流模式、云加速、智能压缩等功能,这些功能可能改写请求;
- 换一个浏览器测试,比如从内置浏览器换到独立安装的Chrome或Firefox;
- 如果开着VPN或代理,尝试切换节点或暂时关闭再试。
第四步:避免重复提交
点击创建按钮后耐心等待几秒,不要连续点击。如果页面卡住,先刷新看看仓库是否其实已经创建成功,再决定下一步操作。连续快速提交多次表单,是触发422的典型操作。
终极方案:绕过网页,用API或命令行创建仓库
如果网页端反复失败,不妨直接绕开它。GitHub提供了完善的API和命令行工具,稳定性远高于移动端网页表单。
用GitHub CLI创建
如果你能在手机上安装Termux(安卓)或使用支持终端的环境,GitHub CLI是最方便的方式:
# 安装后先登录 gh auth login # 创建一个公开仓库 gh repo create my-project --public --description "我的测试仓库" # 创建私有仓库并克隆到本地 gh repo create my-private --private --clone
CLI方式提交的请求结构固定,不受浏览器缓存和页面脚本影响,几乎不会遇到422问题。
直接调用REST API
也可以用curl直接调用GitHub的REST API创建仓库,只需要一个Personal Access Token(在网页版Settings的Developer settings中生成):
curl -X POST \
-H "Authorization: Bearer 你的token" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/user/repos \
-d '{"name":"my-new-repo","private":true,"description":"通过API创建"}'成功时API会返回201状态码和仓库详情JSON。如果返回422,返回体里的message字段会明确告诉你原因,比如name already exists on this account,比网页提示友好得多。这也是排查网页端422原因的一个好办法——用API试一次,看看服务端到底在抱怨什么。
预防措施与小结
解决问题之后,再分享几个减少复发的习惯。首先,在手机上创建仓库时尽量用GitHub官方App,它的表单校验在本地就做了,非法名称根本提交不出去。其次,重要的仓库创建操作尽量在桌面端完成,移动端适合浏览和轻量修改,创建类操作失败率本身就更高。第三,定期清理浏览器缓存,或者给GitHub单独留一个干净的浏览器配置。
总结一下,422错误看起来吓人,本质上就是服务端数据校验没通过。先查名称是否合法、是否重名,再排查浏览器缓存和代理干扰,最后用API或CLI作为兜底手段。按这个思路走下来,绝大多数移动端创建仓库的422问题都能顺利解决。如果所有方法都试过依然失败,可以到GitHub的官方Status页面确认是不是服务端故障,或者通过支持渠道反馈问题。
GitHub 422错误GitHub移动端创建仓库失败修改时间:2026-09-08 20:11:07