第9章:提交项目到GitHub
第9章提交项目到GitHub本章目标完整走一遍把项目提交到 GitHub 远程仓库的流程包括 GitHub 特有的Personal Access TokenPAT认证、代理配置、以及命令行 / TortoiseGit 两套操作。与 第8章提交项目到Gitee 对照学习差异部分重点标注。1. GitHub 与 Gitee 的差异点对比项GiteeGitHub访问速度国内快国内可能不稳定需要代理界面语言中文英文有浏览器翻译HTTPS 密码认证支持账号密码不支持必须用 Token默认分支通常为 master可在设置中修改main建库界面中文引导英文引导开源生态国内项目多全球开源项目、学习资源最全[!warning] 记住最大区别GitHub 从 2021 年 8 月起不再支持用账号密码进行 Git 操作HTTPS 方式必须使用Personal Access TokenSSH 方式不受影响。所以强烈建议配置 SSH。2. 准备工作2.1 注册 GitHub 账号打开 https://github.com/点击Sign up填写邮箱、密码、用户名完成邮箱验证记下你的用户名仓库地址里要用2.2 配置 SSH 公钥强烈推荐生成密钥若已为 Gitee 生成过可以复用同一把也可以单独生成# 复用已有密钥直接复制公钥cat~/.ssh/id_rsa.pub# 或不影响现有密钥为 GitHub 单独生成一把ssh-keygen-ted25519-f~/.ssh/id_ed25519_github-Cyouexample.com添加公钥到 GitHub头像 → Settings → SSH and GPG keys → New SSH keyTitle随便写如 “家里台式机”Key typeAuthentication KeyKey粘贴ssh-rsa AAA...或ssh-ed25519 AAA...全文测试ssh-Tgitgithub.com# 成功Hi username! Youve successfully authenticated...[!tip] 22 端口被屏蔽公司/学校网络可能封 22 端口用 443 端口测试ssh-T-p443gitssh.github.com若成功在~/.ssh/config中配置Host github.com Hostname ssh.github.com Port 443 User git2.3 网络访问问题国内环境如果无法访问 github.com 或推送特别慢可以把 HTTPS 代理配置给 Git# 设置代理端口按你本地代理软件实际情况修改如 7890、10809 等gitconfig--globalhttp.proxy http://127.0.0.1:7890gitconfig--globalhttps.proxy http://127.0.0.1:7890# 取消代理gitconfig--global--unsethttp.proxygitconfig--global--unsethttps.proxy# 只对 GitHub 走代理推荐避免影响 Giteegitconfig--globalhttp.https://github.com.proxy http://127.0.0.1:7890[!note] SSH 的代理上面的配置只作用于 HTTPS。SSH 推送需要代理时通常在~/.ssh/config里配置ProxyCommand或让代理软件开启全局/TUN 模式。3. 在 GitHub 上创建远程仓库登录 GitHub → 右上角「」→ New repository填写项填写建议Repository name英文名如c-learning-notesDescription可选一句话介绍Public / Private想展示就 Public含隐私就 PrivateAdd a README file不勾本地已有代码时Add .gitignoreNone本地已有或随后自建Choose a license可选开源项目建议 MIT点击Create repository→ 得到地址HTTPShttps://github.com/你的用户名/c-learning-notes.git SSH gitgithub.com:你的用户名/c-learning-notes.git4. 方式一命令行完成提交4.1 完整步骤SSH 方式# 1. 进入项目目录 cd/d/my-c-project# 2. 初始化本地仓库 gitinit# 3. 创建 .gitignore排除编译产物# 内容参考第3章模板# 4. 提交到本地仓库 gitadd.gitcommit-mfirst commit: 初始化项目# 5. 确保分支名为 main gitbranch-Mmain# 6. 关联远程仓库 gitremoteaddorigin gitgithub.com:你的用户名/c-learning-notes.git# 7. 首次推送 gitpush-uorigin main4.2 HTTPS Token 方式不用 SSH 时第一步生成 Personal Access TokenGitHub → 头像 →Settings→ 左下角Developer settingsPersonal access tokens → Tokens (classic) → Generate new token (classic)填写Note如 “Windows 电脑推送”Expiration有效期可自定义过期需重新生成Scopes至少勾选repo完整仓库读写权限点Generate token→立即复制并妥善保存页面关闭后无法再看到第二步用 Token 推送gitremoteaddorigin https://github.com/你的用户名/c-learning-notes.gitgitpush-uorigin main# 弹出认证窗口时# 用户名你的 GitHub 用户名# 密码粘贴刚才的 Token不是账号密码[!warning] Token 保管Token 等同密码权限不要写入代码、不要提交到仓库、不要截图发人。泄露了立即去页面 Revoke撤销后重新生成。4.3 验证与日常开发gitremote-v# 查看关联gitlog--oneline-3# 查看提交# 日常三步gitadd.gitcommit-mfeat: 新增功能gitpush刷新 GitHub 仓库页面即可看到代码和提交历史。5. 方式二TortoiseGit 完成提交流程与 Gitee 完全一致参见 [第8章提交项目到Gitee#5. 方式二TortoiseGit 完成提交图形化差异只在远程地址和认证5.1 步骤在项目文件夹右键 →Git 在此创建版本库Git Create repository here创建.gitignore→Git 提交Commit填信息提交右键 →Git 同步Git Sync…首次需要设置远程仓库点 Push 旁边下拉 →管理远程仓库Manage remotes/ 设置新建远程名称originURL 填gitgithub.com:你的用户名/c-learning-notes.git点Pull可选首次空仓库无内容→ 点PushSSH 首次连接确认指纹 → 完成5.2 HTTPS 场景TortoiseGit TokenURL 填https://github.com/你的用户名/c-learning-notes.git推送时弹出登录框用户名GitHub 用户名密码粘贴Token勾选保存后Windows 凭据管理器会记住[!warning] 认证失败最常见原因密码栏填了账号密码而不是 Token → 认证失败Token 过期或被撤销 → 重新生成Token 权限不含repo→ 推送被拒换账号后没清理旧凭据 → 控制面板 → 凭据管理器 → 删除git:https://github.com6. 常见报错速查GitHub 篇报错原因解决Authentication failed密码填错 / 用了账号密码使用 Token或改 SSHremote: Support for password authentication was removedGitHub 不再支持密码改用 Token / SSHPermission denied (publickey)SSH 公钥未配置/配置错账号ssh -T gitgithub.com测试检查公钥Connection timed out/ 推送卡住网络无法直连配置代理见 2.3fatal: unable to access... Could not resolve hostDNS 污染/断网检查网络、代理设置non-fast-forward远程有本地没有的提交git pull --rebase后再 pushrefusing to merge unrelated histories建库时勾了 READMEgit pull --allow-unrelated-histories后处理File is 123.45 MB; this exceeds GitHubs file size limit of 100.00 MB提交了大文件移除大文件或改用 Git LFS更多通用问题见 第10章常见问题与避坑指南。7. 一个项目同时推送到 Gitee 和 GitHub进阶一个本地仓库可以关联多个远程仓库实现双备份# 关联两个远程gitremoteaddorigin gitgitee.com:你的用户名/repo.gitgitremoteaddgithub gitgithub.com:你的用户名/repo.git# 分别推送gitpush origin main# 推 Giteegitpush github main# 推 GitHub# 或者给 origin 配置多个 push 地址一条命令同时推两个gitremote set-url--add--pushorigin gitgitee.com:你的用户名/repo.gitgitremote set-url--add--pushorigin gitgithub.com:你的用户名/repo.gitgitpush origin main# 一次推送同时更新两个平台TortoiseGit 中则是设置 → Git → 远程 → 新建第二个远程如github推送时在 Sync 窗口选择目标远程即可。8. 完整命令速抄新手可直接复制# 在项目根目录打开 Git Bash逐行执行gitinitgitadd.gitcommit-mfirst commit: 初始化项目gitbranch-Mmaingitremoteaddorigin gitgithub.com:你的用户名/仓库名.gitgitpush-uorigin main9. 本章小结GitHub 流程主线与 Gitee 相同注册 → 配 SSH → init → add → commit → remote add → push -u两大特有坑HTTPS 必须用 Token、国内网络需配代理建库时不勾 README/.gitignore避免首推冲突一个本地仓库可加多个远程实现 Gitee GitHub 双备份出错先对照报错表再查 第10章常见问题与避坑指南

相关新闻

第 3 篇 · p2m 内存类型分类

第 3 篇 · p2m 内存类型分类

p2m 表项不只记"对应哪个 MFN",还带一个类型标签(p2m_type),决定访问它时的行为。这一篇把 Xen 的 p2m 类型讲透:完整枚举 各自用例,以及它们之上两个容易混淆的"分组/空间"概念——类…

2026/9/24 17:46:43 阅读更多 →
计算机毕业设计之基于MySQL的校园二手商城的设计及实现

计算机毕业设计之基于MySQL的校园二手商城的设计及实现

随着新世纪无纸化办公方式的普及,自动化信息处理和基于网络的信息交互方式已被广泛应用。现在很多行业基本上都是交由计算机进行管理和测试,网络与计算机已成为整个线上管理体系中的重要组成部分。虽然信息技术广泛应用和数据存取更加方便,但…

2026/9/24 17:46:43 阅读更多 →
检测链接的前端代码

检测链接的前端代码

##任务1:在WEB前端中,提取所有图片URL和图片绑定的响应跳转链接。##任务2:在WEB前端中,提取所有外站链接的地址。##任务3:在WEB前端中,提取所有带文字描述的内部链接及其对应的文字标题。##任务4&#xff1…

2026/9/24 17:46:43 阅读更多 →

最新新闻

【Coze】【视频】治愈系老爷爷工作流

【Coze】【视频】治愈系老爷爷工作流

今天给大家演示一个 老爷爷语录视频自动生成工作流。该工作流通过大语言模型和图像生成模型的协作,自动完成从文本语录生成、格式化处理、配图生成,再到视频合成和音频配乐的完整流程。结合效果展示,用户只需提供简单的输入,就能得到带有温馨画面和背景音乐的成品视频,大幅…

2026/9/24 18:27:12 阅读更多 →
基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

每年到这个时间段,我的私信里总是涌入同一类问题:SpringBoot学完了但没项目练手怎么办?课程设计选什么题能不撞车又拿高分?面试时项目经历讲不出亮点怎么办?今天就把我打磨过很多遍的一个实战项目——基于SpringBoot的…

2026/9/24 18:27:12 阅读更多 →
快速排序实战笔记:从分治原理到代码优化与边界排查

快速排序实战笔记:从分治原理到代码优化与边界排查

如果你和我一样,是靠刷 LeetCode 硬啃基础算法过来的,那“快速排序”这四个字你绝对不陌生。很多人在基础算法集训里把它当成一道“背模板题”——敲一遍快排代码、跑通几个用例,就觉得自己会了。但真到了手撕代码、处理大数据量、甚至面试被…

2026/9/24 18:27:12 阅读更多 →
从原理到实战:搭建轻量级沙箱环境与隔离技术解析

从原理到实战:搭建轻量级沙箱环境与隔离技术解析

说到沙箱技术,很多人的第一印象可能是留档取证或者安全分析人员的神秘工具,但把它放到日常软件工程里,它其实就是一个“能让你胆大心细地跑不受信任代码”的基础设施。我最早接触沙箱,是因为要分析一系列可疑的 Office 文档&#…

2026/9/24 18:27:12 阅读更多 →
【Coze】【视频】小人国风格动画工作流

【Coze】【视频】小人国风格动画工作流

今天给大家演示一个 微观小人国场景构建与多模态生成的 Coze 工作流。这个工作流的设计目标,是将用户输入的主题转化为成体系的微观生活场景,再通过大模型生成文本、图像与视频内容,最终形成可用于创作与展示的多模态成果。从场景文本构思,到文生图提示词,再到批量图像生成…

2026/9/24 18:27:12 阅读更多 →
MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

做后端开发这几年,文件存储始终是个绕不开的话题。早期我接触过FastDFS,也折腾过自建FTP,后来云厂商的对象存储也用了一阵子,但版权费用和灵活性总让人不太舒服。直到在一个内部管理系统里遇到Minio,我才发现这个S3兼容…

2026/9/24 18:26:12 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →