跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI大前端

Git 入门指南:从零配置到 GitHub 上传实战

介绍 Git 版本控制系统的核心原理与使用方法。内容涵盖 Git 与 GitHub 的区别、本地环境配置、仓库初始化、日常提交回退流程、以及向 GitHub 推送代码的完整步骤。特别针对大文件上传限制提供了 .gitignore 和网盘解决方案,并包含常见网络报错的代理设置方法。适合编程初学者快速掌握代码管理技能。

星河入梦发布于 2026/3/27更新于 2026/7/1744 浏览
Git 入门指南:从零配置到 GitHub 上传实战

一、痛点直击:为什么你需要 Git?

在接触 Git 之前,你的项目文件夹是不是长这样?

  • Project_v1.0
  • Project_最终版
  • Project_打死不改版
  • Project_真的最后一次修改版

这种人工手动备份有三大死穴:

  1. 占内存:大量的重复文件。
  2. 难追溯:忘了 v2 和 v3 到底改了哪行代码。
  3. 没法退:一旦改崩了,想精确回到昨天的某个状态,全靠运气。

Git 的出现,就是为了给你提供版本回退的能力。

二、核心原理:Git 到底是啥?

1. 它是代码世界的存档系统

别被专业术语吓倒,Git 的逻辑其实和玩 RPG 游戏一模一样:

  • 平时写代码 = 打怪升级。
  • git commit (提交) = 手动存档。Git 会把这一刻的所有文件状态拍个快照存下来。
  • git reset (回退) = 读取存档。遇到代码改崩了,直接读档,恢复原状。
2. Git vs GitHub:由于名字太像而被误解

这是新手最大的误区。请记住这个经典比喻:

Git 就像生产工具(如剪映/Pr),GitHub 就像分发平台(如 B 站/抖音)。

  • Git:安装在你电脑上的软件,负责在本地管理代码。
  • GitHub:一个网站,负责在云端托管代码,方便你备份和与人协作。

三、实战:从下载到存档

Step 1: 下载与安装
  • 安装技巧:下载对应版本后,全程点击 Next(下一步),不要改任何配置,默认的就最好用。

验证:在电脑任意位置右键,看到 Git Bash Here 即成功。

官网:https://git-scm.com/

Step 2: 自报家门(配置用户)

Git 必须知道是谁在存档。打开 Git Bash,输入:

git config --global user.name "你的 GitHub 用户名"
git config --global user.email "你的邮箱"

注意:用户名在 GitHub 主页查看;邮箱并不需要真实存在,可任意填写。

Tips: git 里面不能使用快捷键 Ctrl+C 和 Ctrl+V,只能在 git 界面右键,选择 copy 和 paste。

Step 3: 初始化仓库(⚠️ 全文最关键的一步!)

很多新手在这一步就翻车了,请务必注意:

🛑 警告:千万不要直接在电脑桌面点击 Git Bash Here!

错误做法:在桌面初始化。后果是 Git 会监控你桌面上所有的图标、游戏、垃圾桶,导致电脑卡顿且仓库极其混乱。

正确做法:

  1. 双击进入你存放代码的文件夹(比如 D:/MyProject/Demo)。
  2. 在文件夹内部的空白处,右键点击 Git Bash Here。

输入初始化命令:

git init

现象:文件夹里多了一个隐藏的 .git 文件夹,说明 Git 开始接管这里了。

四、核心流程:日常开发的存档循环

1. 加入购物车 (git add)

告诉 Git 哪些文件需要存档。

git add . # '.'代表当前目录下所有文件
2. 正式存档 (git commit)

生成一个版本记录。

git commit -m "完成了登录功能,修复了 BUG"

注意:-m 后面的备注一定要写清楚,方便以后查找。

3. 时光倒流 (git reset)

如果代码写烂了,想回退到上一个版本:

第一步:查看历史存档 ID

git log 或 git log --oneline # '--oneline'让显示内容更简洁

图中黄色的 a671dd1 就是我们需要的存档 ID。

第二步:强制回退

git reset --hard a671dd1 # 注意:这会把你当前没保存的修改全部抹除,慎用!
💡 补充知识包:三个必须掌握的高频指令
1. 照妖镜:git status

作用:查看当前仓库的状态。什么时候用:随时!养成习惯,在执行 git add 或 git commit 之前,必须先敲一下这个命令。它会告诉你:

  • 哪些文件被修改了但还没存(红色)。
  • 哪些文件已经放入暂存区,准备提交(绿色)。
  • 现在的分支状况。
git status

现象解读:红字:modified: main.py -> 警告!你改了它,但 Git 还没把它列入下次存档计划。绿字:modified: main.py -> 放心,它已经在暂存区(购物车)里了,准备下单。

2. 精确打击:git add'文件名'

作用:只把某个特定的文件放入暂存区,而不是全部。为什么不用 git add .?有时候你一口气改了 5 个文件,但只想先把 login.py 这个功能的修改提交上去,其他的 test.py 还没写完不想交。这时候 git add .(全选)就不好用了,你需要单点。

# 场景:你改了 main.py 和 config.yaml # 但你只想提交 main.py
git add main.py # 此时用 git status 查看: # main.py 会变成绿色(已暂存) # config.yaml 还是红色(未暂存)

比喻:git add . 是清空购物车,把货架上所有东西都扫进去;而 git add 文件名是只拿你想要的那个苹果。

3. 搬运工:git clone [链接]

作用:将云端(GitHub/Gitee)上的仓库完整下载到你的本地电脑。什么时候用:

  • 你的代码换电脑写了。
  • 你想下载别人的开源项目学习。
  • 团队来了新同事,他需要把项目代码拉到自己电脑上。
# 不需要 git init,直接找个空文件夹执行:
git clone https://github.com/xxxx/Project.git

注意:git clone 不仅是下载了所有代码文件,它还把整个项目的版本历史(.git 文件夹)一起搬回来了。这意味着你可以直接查看以前的记录,或者接着开发,不需要重新初始化。

五、进阶操作:上传到 GitHub(含大文件避坑)

注意:项目里有大文件的同学先看第四阶段——特殊情况:大文件避坑指南 (GitHub 100MB 限制)!!!!!

这个过程就像是给你的本地文件搬家到云端。

假设你电脑上已经有一个写了代码(或者放了文件)的文件夹,名字叫 MyProject。请跟着我一步步操作:

第一阶段:在本地打包(Local)

在这个阶段,我们不需要联网,先把你的文件在本地打包好。

  1. 进入文件夹:在你的项目文件夹 MyProject 里,右键点击空白处,选择 Git Bash Here(Mac 用户在终端用 cd 命令进入该目录)。
  2. 初始化仓库 (git init):发生了什么?你的文件夹里会多出一个隐藏的 .git 文件夹。这就好比你在家里雇了一个管家,开始准备记录这个房子的所有变动。
  3. 把文件放进暂存区 (git add):注意:后面有个点 .,代表所有文件。发生了什么?你告诉管家:把这屋里所有的东西都列入清单,准备打包。
  4. 确认提交 (git commit):注意:-m 后面是本次提交的说明,必须写。发生了什么?管家把所有文件正式封箱存档了。现在你的代码在本地已经安全了。
git init
git add .
git commit -m "第一次提交"
第二阶段:在 GitHub 建房子(Remote)

现在我们需要在云端(GitHub)准备一个空房子来接收这些东西。

  1. 打开浏览器,登录 GitHub.com。
  2. 关键步骤(千万注意):
    • Repository name: 填一个名字(比如 MyProject)。
    • Description: 选填。
    • Public/Private: 选 Public(公开)。
    • 最重要的一点:不要勾选 Add a README file、.gitignore 或 license。
    • 一定要创建一个完全空的仓库!

点击 Create repository。

点击右上角的 + 号,选择 New repository(新建仓库)。

第三阶段:关联并上传(Push)

创建好后,你会看到 GitHub 跳转到了一个满是代码指令的页面。找到 or push an existing repository from the command line 这一栏,这里就是我们要用的传送门指令。

在 GitHub 页面上找到 HTTPS 链接,点击右侧的复制按钮。

回到你的 Git Bash 窗口,依次执行下面三行命令(直接复制 GitHub 页面上显示的也行):

  1. 建立连接(告诉 Git 目的地在哪里):这步是把你的本地文件夹和 GitHub 上的仓库绑定起来。

给主分支改名(规范化):

git branch -M main

(以前叫 master,现在国际通用标准叫 main)

⚠️ 注意:将下方的链接换成你第一步里复制的那个链接!

git remote add origin https://github.com/你的用户名/仓库名.git
  1. 推送到云端:
git push -u origin main
第四阶段:验证

当你输入完最后一行 git push 并回车后:

  1. 登录验证:
    • Git 会弹出一个窗口让你登录 GitHub。
    • 直接选择 Sign in with your browser(用浏览器登录),然后在浏览器里点确认授权即可。你不需要在黑框框里输密码。
  2. 上传成功:
    • 当你看到类似 Branch 'main' set up to track remote branch 'main'的提示,说明成功了。
  3. 刷新网页:
    • 回到刚才的 GitHub 页面,按 F5 刷新。
    • 恭喜!你本地的文件现在已经出现在网页上了!
特殊情况:大文件避坑指南 (GitHub 100MB 限制)

很多做 AI 或大数据的同学,兴冲冲地把代码连同几百兆的模型文件(.pth, .onnx)一起 Commit,结果在 Push 的时候直接报错。

1. 典型案发现场

当你试图上传超过 100MB 的文件时,Git Bash 会无情地甩出以下报错:

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - [https://git-lfs.github.com](https://git-lfs.github.com).
remote: error: File model/v1.pth is 240.00 MB; this exceeds GitHub's file size limit of 100.00 MB

❌ 误区警告:很多新手看到报错后,直接在文件夹里删除了那个大文件,然后再次 Commit。**没用的!**因为那个大文件已经存在于你的历史版本(Commit 记录)里了,Git 依然会尝试上传那个历史版本,导致你永远 Push 不上去。

1. 最佳解决方案:.gitignore + 网盘大法

虽然 GitHub 官方有 Git LFS(大文件存储)工具,但它有每月 1GB 的带宽限制,稍微下载几次就超额了。对于个人开发者,我强烈推荐忽略名单 + 网盘链接的组合拳。

Step 1: 创建忽略名单 (.gitignore)

在你的项目根目录下,创建一个名为 .gitignore 的文本文件(注意:文件名以点开头,没有后缀名)。

Step 2: 填写规则

用记事本打开它,把你不想上传的文件后缀或名字写进去:

# 忽略所有的 Python 编译文件
__pycache__/
*.pyc
# 忽略所有数据集文件夹
dataset/
# 忽略所有 AI 模型文件 (比如 .pth, .ckpt, .h5)
*.pth
*.ckpt
*.h5
# 忽略特定的超大文件
my_big_model.dat

效果:一旦写入规则,Git 就会自动眼瞎,假装看不见这些文件。git status 甚至不会提示它们的存在。

Step 3: 在 README 中指路

既然 GitHub 上不存模型,别人怎么运行你的代码?把模型上传到百度网盘 / 夸克 / Google Drive,然后在 README.md 里写清楚:

📥 模型下载 本项目依赖 best_model.pth,请通过以下链接下载并放入 weights/目录: 链接:[你的网盘链接] 密码:xxxx

2. 急救包:我不小心 Commit 了大文件怎么办?

如果你没配置 .gitignore,已经执行了 git commit,导致现在死活 Push 不上去,请按以下步骤撤销那次提交:

方法:软回退 (Soft Reset)

# 1. 撤销最近一次的 commit,但保留代码修改
# HEAD~1 表示回到上一个版本
git reset --soft HEAD~1

执行后发生的事情:

  1. 你刚才的 Commit 记录消失了。
  2. 但是!你的文件和修改内容都还在(变回了绿色的暂存状态)。
  3. 这时候,赶紧去配置 .gitignore 把大文件忽略掉。
  4. 然后重新 git add . 和 git commit。

六、常见报错急救包 🚑

在连接 GitHub 时,99% 的人会遇到网络报错。

报错信息:Failed to connect to github.com port 443 或 Connection timed out。

  • 原因:国内网络无法直连 GitHub。
  • 解决:
    1. 开启你的网络代理工具(加速器)。
    2. 查看加速器软件设置里的本地 HTTP 代理端口(例如 7890)。
    3. 在 Git Bash 输入:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

(注:如果不使用代理了,记得用 git config --global --unset http.proxy 取消设置)

总结:Git 常用指令速查表 📑

指令作用备注
git init初始化仓库一定要进到项目文件夹里再敲!
git add .添加所有文件放入暂存区
git commit -m "xxx"提交存档生成版本记录
git status查看状态随时检查有没有文件没提交
git log --oneline查看历史获取 Commit ID
git push上传云端同步到 GitHub

目录

  1. 一、痛点直击:为什么你需要 Git?
  2. 二、核心原理:Git 到底是啥?
  3. 1. 它是代码世界的存档系统
  4. 2. Git vs GitHub:由于名字太像而被误解
  5. 三、实战:从下载到存档
  6. Step 1: 下载与安装
  7. Step 2: 自报家门(配置用户)
  8. Step 3: 初始化仓库(⚠️ 全文最关键的一步!)
  9. 四、核心流程:日常开发的存档循环
  10. 1. 加入购物车 (git add)
  11. 2. 正式存档 (git commit)
  12. 3. 时光倒流 (git reset)
  13. 💡 补充知识包:三个必须掌握的高频指令
  14. 1. 照妖镜:git status
  15. 2. 精确打击:git add“文件名”
  16. 场景:你改了 main.py 和 config.yaml # 但你只想提交 main.py
  17. 3. 搬运工:git clone [链接]
  18. 不需要 git init,直接找个空文件夹执行:
  19. 五、进阶操作:上传到 GitHub(含大文件避坑)
  20. 第一阶段:在本地打包(Local)
  21. 第二阶段:在 GitHub 建房子(Remote)
  22. 第三阶段:关联并上传(Push)
  23. 第四阶段:验证
  24. 特殊情况:大文件避坑指南 (GitHub 100MB 限制)
  25. 1. 典型案发现场
  26. 1. 最佳解决方案:.gitignore + 网盘大法
  27. Step 1: 创建忽略名单 (.gitignore)
  28. Step 2: 填写规则
  29. 忽略所有的 Python 编译文件
  30. 忽略所有数据集文件夹
  31. 忽略所有 AI 模型文件 (比如 .pth, .ckpt, .h5)
  32. 忽略特定的超大文件
  33. Step 3: 在 README 中指路
  34. 2. 急救包:我不小心 Commit 了大文件怎么办?
  35. 1. 撤销最近一次的 commit,但保留代码修改
  36. HEAD~1 表示回到上一个版本
  37. 六、常见报错急救包 🚑
  38. 总结:Git 常用指令速查表 📑
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • MySQL 表操作实战:创建、修改与删除详解
  • 金仓数据库与 InfluxDB 性能及 SQL 兼容性对比分析
  • 快速幂算法原理及 Java 实现
  • OkHttp 网络请求库核心原理深度解析
  • 前端表单验证实战:构建健壮的数据入口
  • 大模型时代人形机器人感知:视觉 - 语言模型应用
  • 基于 Python 的名中医肿瘤治疗教学案例库设计与实现
  • C++ STL 容器详解:map 与 set 的用法
  • COT思维链技术:让AI学会拆解复杂问题
  • 缓存算法:LRU 与 LFU 原理及 Java 实现
  • 基于 AgentFabric 微调 Qwen-7B Chat 实现工具调用
  • KoboldAI 安装与配置指南:AI 写作工具入门
  • 自然语言处理在金融领域的应用与实战
  • 深度学习模型优化策略与实战调参
  • 深入剖析 Spring 框架:架构、缺陷与演进之路
  • AI 时代细胞生物学最新进展综述
  • OpenVLA 架构解析:基于 Prismatic VLM 与下一个 Token 预测的动作生成
  • 机器人 DH 参数模型与正运动学详解
  • C++ 类大小计算:内存对齐、虚函数与继承详解
  • Stable Diffusion 图生图功能详解与参数优化指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online