首页/新闻资讯/正文详情

第9章:提交项目到GitHub

发布时间:2026/9/24 17:46:44 来源:云帆数科 栏目:资讯中心
第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:44

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

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

检测链接的前端代码
检测链接的前端代码

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

Java+JSP+MySQL学生信息管理系统:课程设计最稳落地方案
Java+JSP+MySQL学生信息管理系统:课程设计最稳落地方案

简介:这份资源是面向高校计算机相关专业学生的Java Web课程设计参考项目,采用JSPServletMySQL技术栈实现学生信息管理系统,适合正在准备期末大作业、课程设计或需要练手Java Web完整开发流程的初学者与中级学习者。压缩包共241个文件&#xf… · 2026/9/24 18:14:57

基于注意力机制的3D点云语义分割源码解析与实战调优
基于注意力机制的3D点云语义分割源码解析与实战调优

简介:本资源面向三维视觉与自动驾驶感知方向的研究者和开发者,聚焦如何借助注意力机制提升3D点云语义分割性能,适合具备一定深度学习基础、希望深入理解点云特征学习并落地实战的中高级学习者。压缩包共195个文件,约1.95MB&#x… · 2026/9/24 18:14:57

C# Socket通讯源码实践:粘包拆包、心跳机制与断线重连全解析
C# Socket通讯源码实践:粘包拆包、心跳机制与断线重连全解析

简介:这是一份基于C#的Socket网络通讯完整源码,面向初步接触网络编程的C#开发者,适合用来快速理解客户端与服务器之间的通信原理。代码采用WinForm界面,分为server和client两个独立项目,结构简洁,支持文本消… · 2026/9/24 18:14:57

航空图像野火探测数据集与YOLOv8实战:从数据选型到边缘部署
航空图像野火探测数据集与YOLOv8实战:从数据选型到边缘部署

简介:这是一份面向野火探测与火灾识别任务的综合性航空图像数据集,适合从事深度学习目标检测的研究者、算法工程师及遥感方向学生使用,可支撑火灾预警、灾情评估等场景下的模型训练与验证。压缩包共收录2000个文件,全部为XML格式的… · 2026/9/24 18:14:57

Java电商后台系统设计:从能跑到敢上线的实战指南
Java电商后台系统设计:从能跑到敢上线的实战指南

简介:这是一套基于Java语言开发的电商后台管理系统模拟源码,面向Java后端初学者与中级开发者,聚焦电商核心业务场景学习与系统架构理解。资源完整呈现了类京东/淘宝后台的关键模块实现,涵盖商品管理、订单处理、用户权限控制、MyB… · 2026/9/24 18:14:50

BP神经网络数据回归预测:Matlab完整实现、参数调优与常见问题排查
BP神经网络数据回归预测:Matlab完整实现、参数调优与常见问题排查

简介:在工业回归预测与学术实验中,常需借助历史数据推断未知结果,BP神经网络作为经典的非线性映射模型,依靠反向传播算法更新权重,非常契合此类问题;基于此的Matlab实现方案面向机器学习初学者和需要落地预… · 2026/9/24 18:14:50

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

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

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码