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

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

在接触 Git 之前,你的项目文件夹是不是长这样?
这种人工手动备份有三大死穴:
Git 的出现,就是为了给你提供版本回退的能力。
别被专业术语吓倒,Git 的逻辑其实和玩 RPG 游戏一模一样:
这是新手最大的误区。请记住这个经典比喻:
Git 就像生产工具(如剪映/Pr),GitHub 就像分发平台(如 B 站/抖音)。
验证:在电脑任意位置右键,看到 Git Bash Here 即成功。
Git 必须知道是谁在存档。打开 Git Bash,输入:
git config --global user.name "你的 GitHub 用户名"
git config --global user.email "你的邮箱"
注意:用户名在 GitHub 主页查看;邮箱并不需要真实存在,可任意填写。
Tips: git 里面不能使用快捷键 Ctrl+C 和 Ctrl+V,只能在 git 界面右键,选择 copy 和 paste。
很多新手在这一步就翻车了,请务必注意:
🛑 警告:千万不要直接在电脑桌面点击 Git Bash Here!
错误做法:在桌面初始化。后果是 Git 会监控你桌面上所有的图标、游戏、垃圾桶,导致电脑卡顿且仓库极其混乱。
正确做法:
输入初始化命令:
git init
现象:文件夹里多了一个隐藏的 .git 文件夹,说明 Git 开始接管这里了。
告诉 Git 哪些文件需要存档。
git add . # '.'代表当前目录下所有文件
生成一个版本记录。
git commit -m "完成了登录功能,修复了 BUG"
注意:-m 后面的备注一定要写清楚,方便以后查找。
如果代码写烂了,想回退到上一个版本:
第一步:查看历史存档 ID
git log 或 git log --oneline # '--oneline'让显示内容更简洁
图中黄色的 a671dd1 就是我们需要的存档 ID。
第二步:强制回退
git reset --hard a671dd1 # 注意:这会把你当前没保存的修改全部抹除,慎用!
作用:查看当前仓库的状态。什么时候用:随时!养成习惯,在执行 git add 或 git commit 之前,必须先敲一下这个命令。它会告诉你:
git status
现象解读:红字:modified: main.py -> 警告!你改了它,但 Git 还没把它列入下次存档计划。绿字:modified: main.py -> 放心,它已经在暂存区(购物车)里了,准备下单。
作用:只把某个特定的文件放入暂存区,而不是全部。为什么不用 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 文件名是只拿你想要的那个苹果。
作用:将云端(GitHub/Gitee)上的仓库完整下载到你的本地电脑。什么时候用:
# 不需要 git init,直接找个空文件夹执行:
git clone https://github.com/xxxx/Project.git
注意:git clone 不仅是下载了所有代码文件,它还把整个项目的版本历史(.git 文件夹)一起搬回来了。这意味着你可以直接查看以前的记录,或者接着开发,不需要重新初始化。
注意:项目里有大文件的同学先看第四阶段——特殊情况:大文件避坑指南 (GitHub 100MB 限制)!!!!!
这个过程就像是给你的本地文件搬家到云端。
假设你电脑上已经有一个写了代码(或者放了文件)的文件夹,名字叫 MyProject。请跟着我一步步操作:
在这个阶段,我们不需要联网,先把你的文件在本地打包好。
git init
git add .
git commit -m "第一次提交"
现在我们需要在云端(GitHub)准备一个空房子来接收这些东西。
点击 Create repository。
点击右上角的 + 号,选择 New repository(新建仓库)。
创建好后,你会看到 GitHub 跳转到了一个满是代码指令的页面。找到 or push an existing repository from the command line 这一栏,这里就是我们要用的传送门指令。
在 GitHub 页面上找到 HTTPS 链接,点击右侧的复制按钮。
回到你的 Git Bash 窗口,依次执行下面三行命令(直接复制 GitHub 页面上显示的也行):
给主分支改名(规范化):
git branch -M main
(以前叫 master,现在国际通用标准叫 main)
⚠️ 注意:将下方的链接换成你第一步里复制的那个链接!
git remote add origin https://github.com/你的用户名/仓库名.git
git push -u origin main
当你输入完最后一行 git push 并回车后:
很多做 AI 或大数据的同学,兴冲冲地把代码连同几百兆的模型文件(.pth, .onnx)一起 Commit,结果在 Push 的时候直接报错。
当你试图上传超过 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 不上去。
虽然 GitHub 官方有 Git LFS(大文件存储)工具,但它有每月 1GB 的带宽限制,稍微下载几次就超额了。对于个人开发者,我强烈推荐忽略名单 + 网盘链接的组合拳。
在你的项目根目录下,创建一个名为 .gitignore 的文本文件(注意:文件名以点开头,没有后缀名)。
用记事本打开它,把你不想上传的文件后缀或名字写进去:
# 忽略所有的 Python 编译文件
__pycache__/
*.pyc
# 忽略所有数据集文件夹
dataset/
# 忽略所有 AI 模型文件 (比如 .pth, .ckpt, .h5)
*.pth
*.ckpt
*.h5
# 忽略特定的超大文件
my_big_model.dat
效果:一旦写入规则,Git 就会自动眼瞎,假装看不见这些文件。git status 甚至不会提示它们的存在。
既然 GitHub 上不存模型,别人怎么运行你的代码?把模型上传到百度网盘 / 夸克 / Google Drive,然后在 README.md 里写清楚:
📥 模型下载 本项目依赖 best_model.pth,请通过以下链接下载并放入 weights/目录: 链接:[你的网盘链接] 密码:xxxx
如果你没配置 .gitignore,已经执行了 git commit,导致现在死活 Push 不上去,请按以下步骤撤销那次提交:
方法:软回退 (Soft Reset)
# 1. 撤销最近一次的 commit,但保留代码修改
# HEAD~1 表示回到上一个版本
git reset --soft HEAD~1
执行后发生的事情:
在连接 GitHub 时,99% 的人会遇到网络报错。
报错信息:Failed to connect to github.com port 443 或 Connection timed out。
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 init | 初始化仓库 | 一定要进到项目文件夹里再敲! |
git add . | 添加所有文件 | 放入暂存区 |
git commit -m "xxx" | 提交存档 | 生成版本记录 |
git status | 查看状态 | 随时检查有没有文件没提交 |
git log --oneline | 查看历史 | 获取 Commit ID |
git push | 上传云端 | 同步到 GitHub |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online