步骤 1:GitHub 官网新建仓库
(Repository name:react-ts-demo(必须和本地项目名一致,避免后续麻烦))
步骤 2:本地 Git 基础配置(首次使用必做)
(因为git config user.name已经配置了一个公用的,现在,这个是自学提升的,所以,这里配置的自学账号是只配置在当前仓库,不影响全局的公用账号的配置)

这个是查询到本地已经配置的全局公用账号:git config user.name 或者git config --list 查看更多git配置信息
javascript
//配置个人 GitHub 用户名(替换成你的)
git config user.name "你的个人GitHub用户名"
//配置个人 GitHub 邮箱(替换成你的)
git config user.email "你的个人GitHub注册邮箱@xxx.com"

当直接进入本地项目文件夹中直接配置自学账号(仓库级配置:只对当前仓库生效,优先级高于全局配置(给个人项目单独配个人账号)),如上图所示遇到的 fatal: not in a git directory 报错,是因为执行 git config user.name 时,还没进入 Git 仓库目录,或者该目录还没初始化 Git
步骤 3:初始化 Git 仓库(关键!解决「not in a git directory」)
如果这个目录还没初始化 Git,先执行初始化(生成 .git 隐藏文件夹):
javascript
// 初始化 Git 仓库(仅执行一次即可)
git init
执行后终端会提示:Initialized empty Git repository in xxx/react-ts-learning/.git/,说明初始化成功。


步骤4 继续完成关联 GitHub 仓库并提交代码
javascript
// 1. 添加 .gitignore 文件(之前教过的内容,先创建好)
// 2. 暂存所有文件
git add .
//3. 提交初始代码(此时用的是个人账号)
git commit -m "初始化 React+TS 学习项目"
//4. 关联 GitHub 远程仓库(替换成你的仓库地址)
git remote add origin https://github.com/你的个人用户名/react-ts-learning.git
//5. 推送代码(首次推送,输入用户名+PAT 即可)
git push -u origin main
git push -u origin main 这条命令的具体含义: 把本地 main 分支的代码推送到名为 origin 的远程仓库,并将本地 main 分支与远程 origin/main 分支建立「追踪关系」 (后续推送 / 拉取可简化命令) -u:建立追踪关系(关键,全称 --set-upstream)


如上图所示,执行 git push -u origin master 时遇到了 ! [rejected] master -> master (fetch first) 报错,核心原因是远程 Gitee 仓库的 master 分支已有内容(比如你在 Gitee 网页端勾选了初始化 README / 许可证),而本地仓库是全新的,Git 拒绝直接覆盖远程内容。
解决方案:拉取远程内容并合并(推荐,保留远程文件)
这个方案会把远程的 README.md 等文件拉到本地,合并后再推送,既保留远程内容,又能上传你的代码,是最规范的做法:
步骤 1:拉取远程 master 分支内容并合并
javascript
// 拉取远程 origin 仓库的 master 分支内容,并合并到本地 master 分支
git pull origin master --allow-unrelated-histories
--allow-unrelated-histories:关键参数!因为本地和远程仓库是 "无关联历史"(本地是全新的,远程有初始化文件),不加这个参数会提示「fatal: refusing to merge unrelated histories」。
步骤 2:解决可能的合并冲突(如果有)
执行完 git pull 后,如果远程的 README.md 和你本地的 README.md 内容冲突(比如你本地也建了 README),终端会提示冲突文件,此时:
- 打开冲突文件(比如
README.md),会看到类似标记:
javascript
<<<<<<< HEAD
本地 README 的内容
=======
远程 README 的内容
>>>>>>> origin/master
-
手动编辑保留需要的内容(比如保留远程的基础 README,补充你的学习笔记),删除冲突标记
<<<<<<</=======/>>>>>>>; -
保存文件后,执行以下命令标记冲突已解决:
javascript
git add .
git commit -m "合并远程 README 文件,解决冲突"
步骤 3:重新推送代码到远程
git push -u origin master
✅ 执行后就能成功推送,远程仓库会同时有你的 React+TS 代码和初始化的 README 文件。