超详细!零基础教你如何将项目代码推送到私人或公共github仓库!!

超详细!零基础教你如何将项目代码推送到私人或公共github仓库!!

前言:本文专为零基础开发者、刚接触GitHub的新手编写,全程图文式步骤(关键命令标红),Windows/macOS/Linux系统通用,无需复杂配置,跟着操作就能快速将本地代码上传到GitHub私人账号,避免踩坑!

一、前期准备工作(3步搞定,缺一不可)

1. 拥有GitHub私人账号并登录

如果还没有GitHub账号,先完成注册:

✅ 访问 GitHub官网,填写用户名、邮箱、密码,完成邮箱验证后即可注册成功;

✅ 注册完成后,登录你的私人账号(后续所有操作均基于已登录状态)。

2. 本地安装Git并配置用户信息(核心步骤)

Git是连接本地代码和GitHub远程仓库的核心工具,必须先安装,再配置与GitHub账号一致的信息,否则无法推送代码。

(1)Git安装(分系统操作,默认下一步即可)
  • Windows系统:访问 Git官网下载安装包,安装时务必勾选「Add Git to PATH」(方便后续在命令行调用Git),其余默认下一步;
  • macOS系统:两种方式任选,① 终端执行命令 brew install git(需提前安装Homebrew,未安装可执行命令:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)");② 直接从Git官网下载安装包安装;
  • Linux系统:Ubuntu/Debian终端执行 sudo apt update && sudo apt install git;CentOS/RHEL终端执行 sudo yum install git
(2)配置Git用户信息(与GitHub账号严格一致)

安装完成后,打开终端(Windows用Git Bash,macOS/Linux用系统自带终端),执行以下两条命令,替换成你的GitHub注册信息:

# 配置GitHub用户名(注意:是账号名,不是昵称) git config --global user.name "你的GitHub用户名" # 配置GitHub注册邮箱(必须与注册时一致) git config --global user.email "你的GitHub注册邮箱@xxx.com"

✅ 验证配置是否成功:终端执行 git config --global --list,能看到刚才配置的用户名和邮箱,即为配置生效。

3. 在GitHub上创建私人远程仓库(关键:设为Private)

登录GitHub后,按以下步骤创建仅自己可见的私人仓库(避免代码泄露):

  1. 点击页面右上角「+」号 → 选择「New repository」(新建仓库);
  2. 填写仓库基础信息(重点看标注):
    1. Repository name:仓库名称(建议英文、无空格,如「my-project」「test-code」);
    2. Description(可选):仓库描述,如「我的个人项目代码,私人备份」;
    3. Visibility:务必选择「Private」(私人仓库,仅自己或授权人员可见;选Public则为公开仓库,所有人可查看);
    4. 其他选项:无需勾选「Add a README file」「.gitignore」「License」(避免与本地代码冲突,后续可手动添加);
  3. 点击页面底部「Create repository」,创建完成后,会自动跳转至仓库详情页 → 复制页面中的仓库HTTPS地址(格式:https://github.com/你的用户名/仓库名.git),后续本地关联需要用到,建议复制后保存到记事本。

💡 提示:复制HTTPS地址时,确保完整,不要遗漏「.git」后缀。

二、本地代码仓库操作(4步,核心流程)

这一步是将本地代码交给Git管理,准备好推送至GitHub,全程在终端操作,跟着命令走即可。

步骤1:进入本地代码所在文件夹(cd命令)

打开终端,通过cd命令,切换到你的本地代码根目录(比如代码放在D盘「my-code」文件夹,或macOS「文稿/my-code」文件夹),示例如下:

# Windows系统(Git Bash示例):进入D盘Documents下的my-code文件夹 cd /d/Documents/my-code # macOS/Linux系统示例:进入文稿下的my-code文件夹 cd ~/Documents/my-code 

✅ 验证是否进入正确目录:终端执行ls(macOS/Linux)或dir(Windows),能看到你的代码文件(如main.py、index.html等),即为正确。

步骤2:初始化本地Git仓库(git init)

在代码根目录,执行以下命令,将普通文件夹转为Git可管理的仓库(执行后会生成隐藏的「.git」文件夹,无需手动修改或删除):

git init

✅ 成功提示:终端会显示「Initialized empty Git repository in 你的目录/.git/」(首次执行有效,若已初始化过,忽略此步骤即可)。

步骤3:将本地代码添加到Git暂存区(git add)

执行以下命令,将当前目录下的所有代码文件,添加到Git暂存区(暂存区相当于“临时中转站”,用于存放待提交的代码):

git add .

💡 补充说明:

  • 若只需添加单个文件,替换命令为:git add 文件名(如git add main.py);
  • 验证添加结果:终端执行git status,若之前的红色文件变为绿色,说明添加成功。

步骤4:提交暂存区代码到本地Git仓库(git commit)

执行以下命令,将暂存区的代码,正式提交到本地Git仓库,并添加提交说明(描述本次提交的内容,方便后续追溯,必填项):

git commit -m "初始化项目,添加核心代码" # 替换为你的提交说明,如“修复XXbug”“添加登录功能” 

✅ 成功提示:终端会显示提交的文件数量、修改内容等信息;

❌ 常见问题:若执行命令时忘记加「-m "提交说明"」,会进入终端编辑器,输入提交说明后,按「Esc」+「:wq」保存退出即可(Windows/macOS/Linux操作一致)。

三、关联远程仓库并推送代码到GitHub(2步收尾,关键!)

这一步是将本地仓库的代码,推送到GitHub的私人远程仓库,完成最终上传。

步骤1:关联本地仓库与GitHub远程仓库(git remote add)

执行以下命令,将本地仓库,与你之前在GitHub创建的私人远程仓库关联,其中「origin」是远程仓库的默认别名(可自定义,后续推送代码会用到):

# 替换命令中的“远程仓库HTTPS地址”,为你之前复制的GitHub仓库地址 git remote add origin https://github.com/你的GitHub用户名/你的仓库名.git 

✅ 验证关联是否成功:终端执行git remote -v,会显示「origin」对应的远程仓库地址(fetch和push两个地址),即为关联成功;

❌ 常见问题:若提示「remote origin already exists」(别名已存在),执行命令git remote rm origin删除原有关联,再重新执行上述关联命令即可。

步骤2:将本地代码推送到GitHub私人仓库(git push)

执行以下命令,将本地仓库的主分支(默认「main」,旧版Git可能是「master」)代码,推送到GitHub远程仓库的「main」分支:

# 首次推送,必须加「-u origin main」,建立本地与远程分支的关联 git push -u origin main # 若你的本地主分支是master,替换为: git push -u origin master 

💡 关键说明:「-u」仅在首次推送时使用,作用是绑定本地分支和远程分支,后续再次推送代码,只需执行git push即可,无需重复输入完整命令。

推送时的身份验证(2种方式,选其一,推荐方式2)

执行推送命令后,终端会要求验证你的GitHub账号身份,两种方式任选,方式2更安全、通用(适配二次验证)。

方式1:输入GitHub账号密码(传统方式,部分场景失效)

终端会依次提示「Username for 'https://github.com':」「Password for 'https://你的用户名@github.com':」,依次输入你的GitHub用户名和密码,按回车即可。

⚠️ 注意:若你的GitHub账号开启了「二次验证(2FA)」,此方式会直接失败,必须使用方式2。

方式2:使用GitHub个人访问令牌(PAT,推荐!安全无失效)

这是GitHub官方推荐的验证方式,适用于所有场景(尤其是开启二次验证的账号),步骤如下:

  1. 生成PAT:登录GitHub → 点击右上角头像 → 选择「Settings」→ 左侧栏拉到底,选择「Developer settings」→ 选择「Personal access tokens」→ 选择「Tokens (classic)」→ 点击「Generate new token (classic)」;
  2. 配置PAT(重点勾选权限):
    1. Note:填写令牌描述,如「push-code-token(用于推送本地代码)」;
    2. Expiration:选择令牌有效期,建议选「No expiration」(永久有效),避免后续频繁重新生成;
    3. Scopes:勾选「repo」(仓库相关所有权限,必须勾选,否则无法推送代码),其余权限无需勾选;
  3. 生成并保存令牌:拉到底部点击「Generate token」,生成后立即复制令牌(仅显示一次,丢失需重新生成),建议保存到记事本或备忘录;
  4. 终端验证:推送命令执行后,提示输入密码时,直接粘贴刚才生成的PAT,按回车即可(终端粘贴密码时,无任何视觉反馈,粘贴后直接回车即可,无需担心)。

四、验证推送结果(确认上传成功)

推送命令执行完成后,终端会显示「100%」「done」等成功提示,此时:

✅ 刷新你在GitHub创建的私人仓库页面,就能看到本地的所有代码文件,已经同步到GitHub上;

✅ 确认仓库标识为「Private」(页面顶部会显示),说明是私人仓库,仅你可见,上传成功!

五、后续代码更新后的推送(简化步骤,收藏即用)

若后续本地代码有修改、新增,无需重复初始化、关联仓库,只需执行以下4步,即可快速推送更新:

# 1. 进入代码目录(若已在代码目录,可跳过) cd 你的代码目录 # 2. 添加修改后的所有文件到暂存区 git add . # 3. 提交到本地仓库,添加修改说明 git commit -m "修改说明(如:修复登录bug,新增首页样式)" # 4. 推送到GitHub(首次推送后,直接执行此命令即可) git push 

六、常见问题解决(新手必看,避免踩坑)

  • 问题1:推送时提示「fatal: not a git repository (or any of the parent directories): .git」 解决:未执行git init初始化本地仓库,回到「二、步骤2」重新执行即可。
  • 问题2git add .后,git status仍显示红色文件 解决:要么是未进入正确的代码根目录,要么是文件被.gitignore忽略,检查目录是否正确,或删除.gitignore文件(若有)。
  • 问题3:推送时提示「failed to push some refs to...」 解决:远程仓库有初始化文件(如README),与本地仓库冲突,执行命令git pull origin main --rebase,拉取远程文件并合并,再重新执行git push
  • 问题4:PAT验证失败、权限不足 解决:重新生成PAT,确保勾选「repo」权限,且令牌未过期;粘贴时不要多复制空格、不要遗漏字符。

七、核心命令速查(收藏备用,不用反复翻)

# 1. 配置Git用户信息(仅首次配置) git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub邮箱" # 2. 本地仓库初始化(仅首次) git init # 3. 添加文件到暂存区 git add . # 所有文件 git add 文件名 # 单个文件 # 4. 提交到本地仓库 git commit -m "提交说明" # 5. 关联远程仓库(仅首次) git remote add origin 远程仓库HTTPS地址 # 6. 首次推送代码 git push -u origin main(或master) # 7. 后续推送更新 git push # 8. 常用验证命令 git config --global --list # 验证Git配置 git remote -v # 验证远程仓库关联 git status # 验证暂存区状态 

结尾总结

上传代码到GitHub私人账号,核心流程可概括为:准备(账号+Git+远程仓库)→ 本地初始化/添加/提交 → 关联远程 → 推送验证,全程无需复杂操作,新手跟着步骤走,10分钟就能完成。

如果操作过程中遇到其他问题,可在评论区留言,看到会第一时间回复!觉得有用的话,麻烦点赞+收藏,关注我,后续分享更多Git、GitHub实用技巧~ ✨

Read more

C++:模板的幻觉 —— 实例化、重定义与隐藏依赖势中

C++:模板的幻觉 —— 实例化、重定义与隐藏依赖势中

一、表象之下:模板真的“生成代码”吗? 很多人第一次学 C++ 模板时,会这样理解: “模板是一种代码生成机制,编译器在编译时会根据不同类型生成不同版本的函数或类。” 乍一看没错,比如: template<typename T> void print(T x) { std::cout << x << std::endl; } int main() { print(42); print("Hello"); } 似乎编译器确实“生成了两份函数”: print<int>(int) 与 print<const

By Ne0inhk
【C++贪心】P8769 [蓝桥杯 2021 国 C] 巧克力|普及+

【C++贪心】P8769 [蓝桥杯 2021 国 C] 巧克力|普及+

本文涉及知识点 C++贪心 [蓝桥杯 2021 国 C] 巧克力 题目描述 小蓝很喜欢吃巧克力,他每天都要吃一块巧克力。 一天小蓝到超市想买一些巧克力。超市的货架上有很多种巧克力,每种巧克力有自己的价格、数量和剩余的保质期天数,小蓝只吃没过保质期的巧克力,请问小蓝最少花多少钱能买到让自己吃 x x x 天的巧克力。 输入格式 输入的第一行包含两个整数 x x x, n n n,分别表示需要吃巧克力的天数和巧克力的种类数。 接下来 n n n 行描述货架上的巧克力,其中第 i i i 行包含三个整数 a i a_i ai , b i b_i bi

By Ne0inhk

揭秘C++26新特性:CPU亲和性控制如何让多线程性能飙升(专家级指南)

第一章:C++26 CPU亲和性与性能优化概述 在高性能计算和实时系统开发中,CPU亲和性控制成为提升程序执行效率的关键技术之一。C++26标准正在积极引入对硬件资源调度的底层支持,允许开发者通过标准化接口绑定线程到特定CPU核心,从而减少上下文切换开销、提高缓存命中率,并优化多核并行任务的执行性能。 为何关注CPU亲和性 * 降低线程迁移带来的缓存失效问题 * 增强实时应用的可预测性与响应速度 * 配合NUMA架构实现内存访问局部性优化 标准库中的预期接口设计 虽然C++26尚未最终定稿,但委员会提案P2173R4建议引入std::execution_context与std::set_affinity等设施。未来可能的用法如下: #include <thread> #include <execution> int main() { std::jthread worker([](std::stop_token st) { // 将当前线程绑定到CPU核心0 std::set_affinity(std::this_thread::get_

By Ne0inhk
C++杂说——命名空间,输入与输出,缺省参数,make/makefile

C++杂说——命名空间,输入与输出,缺省参数,make/makefile

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 命名空间 命名空间编译默认查找顺序: a、当前局部域 : 自留地 b、全局域找 : 村子野地 c, 不会到其他命名空间中去找 : 隔壁张大爷自留地 命名空间展开三种 1、指定访问 2、全展开 //// 展开命名空间 //using namespace bit; //using namespace xjh; 3、指定展开某一个(经常使用,可以展开它一个) // 指定展开某一个 //using bit::x; 命名空间可以为: // 局部域 // 全局域 // 命名空间域 // 不同域可以定义同名的变量/函数/类型 两个私有的命名空间最好不要同时展开,

By Ne0inhk