惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
B
Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News
U
Unit 42
雷峰网
雷峰网
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
美团技术团队
Y
Y Combinator Blog
腾讯CDC
B
Blog RSS Feed
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements

新锐博客

twikoo不用token查询文章浏览量 - 新锐博客 基于Astro构建的支持对话与生图的Web应用 - 新锐博客 deepseek-v4-flash-0731使用体验 - 新锐博客 基元律动免费送68元额度 - 新锐博客 Linux更换软件源 - 新锐博客 华为鸿蒙7.0花粉beta版发布 - 新锐博客 使用测速脚本测一下服务器带宽 - 新锐博客 trae告别白嫖时代,auto也需排队了 - 新锐博客 流量不够用?大流量卡免费领 - 新锐博客 推荐一个免费在线图片处理网站 - 新锐博客 AI清理C盘的优缺点 - 新锐博客 twikoo不算bug的bug - 新锐博客 最近网站的一些变动 - 新锐博客 腾讯EO开始发多余套餐啦!速领 - 新锐博客 hi168停止对个人用户的运营 - 新锐博客 哪吒监控曝高危漏洞,请尽快升级 - 新锐博客 IndexDB实现大文件下载的思路 - 新锐博客 鱼鱼api使用教程 - 新锐博客 服务器安装Dokploy替代vercel - 新锐博客 对于近几年的电视剧的无力吐槽 - 新锐博客 关于网站被攻击的后续 - 新锐博客 使用sessionStorage给音乐播放进度存储 - 新锐博客 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 AI模型掺水?如何辨别真假? - 新锐博客 感谢一九云给我防住了攻击 - 新锐博客 对一些新手使用AI编程的建议 - 新锐博客 Edgeone标记过期和直接删除有何区别? - 新锐博客 用Navigation Timing API给博客添加上加载时间 - 新锐博客 使用 Astro 自建博客,从零开始鏖战 14 小时 - 新锐博客 网站收录急剧下降,趁此机会迁移站点 - 新锐博客
vscode连接cnb并推送仓库 - 新锐博客
莫忘 · 2026-08-13 · via 新锐博客

前言

之前一直手动将代码推送到cnb上,有点麻烦,所以就想着用git的方式推送,今天就尝试一下,并且记录。

整个过程踩了两个坑:一个是凭据权限不够报 403,一个是本地与远程历史不一致被拒绝推送,最后用 --force 解决。下面把完整流程记录下来。

准备工作

1. 安装 Git

git-scm.com 下载安装 Git,安装时保持默认选项即可。装好后打开终端验证:

git --version

能输出版本号就说明安装成功。

2. 在 cnb 上创建仓库

登录 cnb.cool,点击新建仓库,填好仓库名(比如 astro-blog),创建完成后会得到一个仓库地址,类似:

https://cnb.cool/你的用户名/仓库名.git

这个地址就是等下要关联的远程仓库。

3. 配置身份信息(可选但建议)

首次使用 Git 建议先设置用户名和邮箱,这样提交记录里才会显示正确的作者:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

步骤

1. 本地仓库关联远程

在项目根目录打开终端,先初始化本地仓库(如果项目还没有的话):

git init

然后把本地仓库和远程仓库关联起来:

git remote add origin https://cnb.cool/你的用户名/仓库名.git

关联后可以用 git remote -v 查看是否成功,会输出 fetch 和 push 两个地址。

2. 提交本地代码

git add .
git commit -m "首次提交"

3. 推送代码

git push -u origin main

-u 的意思是设置上游分支,以后在本地直接 git push / git pull 就行,不用再写 origin main

踩坑记录

坑一:推送报 403 权限不足

第一次执行 git push 时,终端直接报错:

remote: Your token does not have repo-code:rw permission to push this repository.
fatal: unable to access 'https://cnb.cool/xxx/astro-blog.git/': The requested URL returned error: 403

意思是当前使用的凭据没有该仓库的 repo-code:rw(代码读写)权限

排查思路:

  1. 确认你的 cnb 账号是仓库的成员,而不是只有访客权限
  2. 如果用的是访问令牌(Access Token),去 cnb 平台检查 token 是否勾选了代码读写权限
  3. 如果之前登录过其他账号,Windows 会缓存旧凭据,需要在凭据管理器里删除重新登录

Windows 凭据管理器打开方式:控制面板 → 凭据管理器 → Windows 凭据,找到 git:https://cnb.cool 相关的条目删掉即可。

删掉凭据后重新推送,会弹出登录窗口,用有权限的账号登录就能通过了。

坑二:推送被拒绝 (fetch first)

权限解决后再次推送,又报错:

! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://cnb.cool/xxx/astro-blog.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally.

这是因为远程仓库有本地没有的提交(比如网页端初始化自动生成的 README,或者之前推送过其他内容)。Git 为了安全,不允许直接覆盖远程历史。

解决方式有两种:

方式一:正常合并(推荐)

git pull origin main --rebase
git push -u origin main

先把远程的提交拉下来接到本地提交后面,再推送。

方式二:强制覆盖(慎用!)

git push -u origin main --force

--force 会用本地内容直接覆盖远程,远程上原有而本地没有的提交会永久丢失。只有在确认远程的提交都没价值时才建议使用。

我当时确认远程只有初始化时自动生成的无用文件,所以直接用了方式二。

总结

整个流程其实很简单,核心就三步:关联远程、本地提交、推送。真正花时间的是两个坑:

  • 403 权限问题:检查凭据和 token 权限,必要时清理 Windows 凭据管理器重新登录
  • fetch first 拒绝:远程与本地历史不一致,--force 能解决但会丢远程数据,能合并就尽量合并

学会之后,以后在 VS Code 里写完代码,直接在源代码管理面板点一下提交和推送,就不用再手动上传了。

莫忘

君子喻于义,小人喻于利

本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 新锐博客