第9章:提交项目到GitHub

发布时间:2026/9/24 17:46:43

第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章常见问题与避坑指南
延伸阅读

更多相关文章

2026/9/24 17:46:43

第 3 篇 · p2m 内存类型分类

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

2026/9/24 17:46:43

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

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

2026/9/24 17:46:43

检测链接的前端代码

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

2026/9/24 23:12:32

Tableau LOD函数详解:FIXED/INCLUDE/EXCLUDE实战

在Tableau里做了好几年数据分析,我遇到的第一个真正让人头疼的问题,不是图表不好看,而是“明明想算每个客户的总消费,但拖出来的数字总感觉不对”。换成区域维度,指标变了;换成订单维度,数字又变…

2026/9/24 23:12:32

从AI获客工具到Web AI交互层:开源AI助手的重写实践

我们最早那个版本,其实算不上一个真正的 AI 助手。它是一个挺标准的 AI 获客工具——输入产品介绍,自动生成客户画像、销售话术、批量打招呼内容。上线第一周数据不错,注册量涨得很快,但第二周我就开始慌:用户的会话时…

2026/9/24 23:12:32

AMD锐龙PBO超频实战:从BIOS设置到进阶调优

PBO这三个字母,在AMD玩家群里出现的频率极高,但每次聊起来总有人是一脸问号——有人开了以后游戏帧数几乎没变化,有人开了以后CPU温度直接冲到九十几度,还有人进BIOS翻半天都找不到这个选项藏在哪。实际上PBO并不复杂,…

2026/9/24 23:12:32

把日期变成项目:倒排计划与目标拆解实操指南

26.1.20 是我某天在手账扉页上随手写下的日期。当时旁边还有一句话:“到这天,手里的事要有结果。”后来这个日期慢慢变成了一个代号,微信文件、笔记本封面、日程表标题里全是它。说实话,真正重要的不是那天具体会发生什么&#xf…

2026/9/24 23:02:08

树的重心详解:DFS求重心、带权重心与换根DP进阶

做算法题的人应该都有体会:树形结构里但凡牵扯到“删一个点”、“找一个最优位置”、“算所有点到某点的距离和”,最后十有八九会落到一个东西上——树的重心。洛谷的P1670、P1395、P2986这三道题,恰好是一条非常完整的进阶链路:从…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/24 0:00:21

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

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

2026/9/24 0:00:21

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

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

2026/9/24 0:00:21

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

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

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码