适配场景:本地文件同步到GitHub新仓库(含公共/私密仓库),解决分支不匹配、SSH端口拦截、身份验证等常见问题,优先推荐HTTPS方案(绕开网络限制,成功率100%)。
一、前置准备
- 安装Git:从Git官网下载对应系统版本,默认安装即可(Windows需勾选“添加到环境变量”)。
- GitHub账号:已注册并登录,拥有目标仓库的操作权限(所有者/协作者,私密仓库必备)。
- 个人访问令牌(PAT,私密仓库HTTPS推送必备):
- 登录GitHub → 右上角头像 →
Settings→ 下拉找到Developer settings→Personal access tokens→Generate new token。 - 填写备注(如“同步本地文件”),过期时间选「No expiration」(长期有效)。
- 权限勾选:仅需勾选
repo(包含所有仓库操作权限,满足私密仓库需求)。 - 点击「Generate token」,复制生成的令牌(仅显示一次,务必保存)。
- 登录GitHub → 右上角头像 →
二、GitHub创建新空仓库
- 登录GitHub → 右上角「+」→ 「New repository」。
- 填写仓库信息:
- Repository name:输入仓库名(如
code-study-note,需唯一)。 - Description(可选):填写仓库描述(如“编程学习笔记”)。
- Visibility:选择「Public」(公共)或「Private」(私密)。
- 关键设置:不勾选「Initialize this repository with a README」「Add .gitignore」「Choose a license」(保持仓库为空,避免与本地文件冲突)。
- Repository name:输入仓库名(如
- 点击「Create repository」,创建成功后复制仓库的HTTPS地址(格式:
https://github.com/你的用户名/仓库名.git)。
三、本地文件配置与推送(核心步骤)
全程在「本地文件所在目录」执行操作,以Windows为例(Mac/Linux操作命令一致,仅目录路径格式不同)。
场景1:本地文件夹未初始化Git仓库(绝大多数情况)
如何辨别是否初始化:看当前文件夹内是否存在名称为.git的文件夹,如果不存在,则说明未初始化。
打开终端:Windows按「Win+R」输入
cmd打开CMD,或使用PowerShell。进入本地文件目录(替换为你的实际路径):
cd E:\MyCode\我的编程学习笔记执行代码,初始化本地Git仓库:
git init执行后目录下会生成隐藏的
.git文件夹(证明初始化成功)。(可选)创建.gitignore文件(排除无需同步的文件): 在本地目录新建文本文档,重命名为
.gitignore(无后缀),写入需要排除的文件/文件夹,示例:1
2
3
4
5
6
7
8# 排除node_modules文件夹
node_modules/
# 排除日志文件
*.log
# 排除环境变量文件
.env将本地文件添加到Git暂存区:
1
2git add .
# .表示当前目录下所有文件,也可指定单个文件(如git add README.md)提交暂存区文件到本地仓库(必须添加提交说明):
1
2
3git commit -m "首次提交:同步编程学习笔记到GitHub"
# 备注内容可自定义关联GitHub远程仓库(粘贴步骤1复制的HTTPS地址):
git remote add origin https://github.com/aboucide/code-study-note.git推送本地文件到GitHub:
git push -u origin main说明:-u用于关联本地main分支与远程main分支,后续推送可简化为git push。身份验证(私密仓库必现,公共仓库可选):
- 终端提示输入「用户名」:输入你的GitHub账号名(如
aboucide)。 - 提示输入「密码」:粘贴步骤0准备的「个人访问令牌(PAT)」(不可输入GitHub登录密码),回车即可。
- 终端提示输入「用户名」:输入你的GitHub账号名(如
验证结果:推送完成后,刷新GitHub仓库页面,即可看到本地文件已同步。
场景2:本地文件夹已初始化Git仓库(已有.git文件夹)
进入本地文件目录,确认本地已有提交记录(无提交则先执行提交):
git log --oneline # 有输出说明有提交;无输出则执行git add . + git commit -m "备注"删除原有远程仓库关联(若之前配置过错误地址):
git remote rm origin关联新的GitHub远程仓库(HTTPS地址):
git remote add origin https://github.com/aboucide/code-study-note.git推送本地文件:
git push -u origin main完成身份验证(同场景1步骤8),推送成功后验证结果。
四、常见问题与解决方案(避坑重点)
问题1:error: src refspec main does not match any(分支不匹配/无提交)
- 原因:本地无
main分支(旧版Git默认分支为master),或无有效提交记录。 - 解决:
- 分支不匹配:将本地
master分支重命名为main,再推送:git branch -M main # -M强制重命名 ``git push -u origin main - 无提交记录:先完成本地提交:
git add . ``git commit -m "首次提交:备注内容" ``git push -u origin main
- 分支不匹配:将本地
问题2:ssh: connect to host github.com port 22: Connection refused(SSH端口拦截)
- 原因:网络环境(防火墙、公司/校园网)拦截了SSH默认的22端口,导致连接失败。
- 解决:改用HTTPS方案(优先推荐,无需修改网络配置),步骤见「步骤2」中的关联HTTPS地址并推送。
问题3:fatal: Authentication failed(身份验证失败)
- 原因:HTTPS推送时输入了GitHub登录密码(已被禁用),或PAT权限不足/失效。
- 解决:
- 使用PAT作为密码:重新执行
git push,密码栏粘贴正确的PAT。 - 重新创建PAT:若PAT丢失/失效,按「前置准备」步骤重新创建,确保勾选
repo权限。 - 确认权限:若为他人共享的私密仓库,需让仓库所有者添加你的GitHub账号为协作者(授予Write权限)。
- 使用PAT作为密码:重新执行
五、后续日常同步简化流程
首次推送时已用-u关联本地与远程分支,后续本地修改文件后,仅需3步即可推送:
1 | # 1. 添加修改的文件到暂存区 |
六、核心总结
- 核心流程:GitHub创建空仓库 → 本地初始化Git → 提交本地文件 → 关联远程仓库 → 推送+身份验证。
- 避坑关键:① 新建仓库不勾选初始化选项;② 优先用HTTPS方案绕开SSH端口拦截;③ 私密仓库推送用PAT代替密码。
- 关键命令:
git init(初始化)、git add .(添加文件)、git commit -m "备注"(本地提交)、git remote add origin 地址(关联远程)、git push -u origin main(首次推送)。


