如何使用Git(Github)的类保姆教程和避坑

📅 2026/8/14 13:09:43
如何使用Git(Github)的类保姆教程和避坑
前言在我分享的文章中也提到了在 Github 的分享。软件开发也可以是其他工作的版本控制可以用 Git也可以用 SVN本章主要讲 Git。有一些初学者可能对 Git 和 Github 比较陌生。所以我就浅浅记录了一些内容希望对有兴趣的朋友有所帮助。很多刚入行的开发者第一次接触 Git 和 GitHub 时总觉得命令行晦涩难懂SSH 配置不会用提交代码时不小心把敏感文件全上传到云端踩过无数次坑之后才慢慢摸出门道。其实 GitHub 作为程序员必备的代码云端仓库根本没有想象中复杂。本文完全站在新手视角把从注册账号、配置免密 SSH、到在 PyCharm 中顺畅使用 Git、再到日常协作避坑的全流程拆解清楚哪怕是零基础开发者照着步骤走大概十几分钟就能完成从 0 到 1 的配置。配套小提示配置完成后你之后所有的代码项目都能实现一劳永逸的免密提交再也不用每次推送都输入账号密码从此告别代码备份丢失的噩梦。一、基础环境部署安装 Git 版本控制系统Git 是本地代码版本管理的核心底层工具所有版本回溯、分支切换、冲突合并的操作都基于它运行是连接本地开发环境和云端 GitHub 仓库的必备桥梁。1.1 官方安装包下载直接前往 Git 官方下载页 选择对应操作系统的安装包全程保持默认选项点击下一步即可完成安装无需修改任何复杂配置Windows 系统安装完成后会自动集成 Git Bash、Git GUI 等配套工具。默认编辑器我选择的是Notpad也可以选择VSCode我没有选择使用Vim1.2 安装有效性校验安装完成后打开终端Windows 用 PowerShellMac 用系统自带终端执行校验命令git--version如果返回类似git version 2.45.0.windows.1的版本信息即代表安装成功。✅真实用例 1自定义 Git 安装路径避坑新手安装时如果默认路径是 C 盘后期容易因为 C 盘空间满导致缓存写入失败可以在安装向导第三步自定义选择 D 盘D:\Program Files\Git安装完成后手动添加环境变量到系统 PATH 中就可以在任意终端路径下调用 Git 命令避免出现 “git 不是内部或外部命令” 的报错。二、GitHub 账号注册与 SSH 免密登录生产级配置这一步是最推荐的企业级连接方式相比有效期仅 30 天的个人访问令牌TokenSSH 配置完成后永久免密连接一劳永逸适配长期开发使用。2.1 GitHub 账号标准化注册流程打开 GitHub 官网点击右上角的Sign up按钮依次填写符合规范的用户名、常用工作邮箱、高强度登录密码填写完成后前往对应邮箱点击验证链接即可完成账号注册。生产安全提示注册完成后强烈建议绑定手机动态验证器Authenticator开启二次验证避免账号被盗导致代码仓库被恶意篡改这也是绝大多数企业 GitHub 账号的强制安全规范。2.2 SSH 密钥全流程配置实操初始状态校验打开终端执行初始测试命令未配置前大概率会返回配置错误提示属于正常初始状态无需惊慌ssh-Tgitgithub.com密钥生成执行密钥生成命令将命令后的邮箱替换为注册 GitHub 时使用的邮箱ssh-keygen-ted25519-Cyour_work_emailcompany.com连续三次按下回车键无需设置额外密码系统会自动生成一对公钥 私钥Windows 系统默认存储路径如下公钥路径C:\Users\你的用户名/.ssh/id_ed25519.pub私钥路径C:\Users\你的用户名/.ssh/id_ed25519公钥绑定打开公钥文件复制全部内容登录 GitHub 后依次进入Settings → SSH and GPG keys → New SSH key将复制的公钥内容粘贴到输入框中保存。连通性验证再次执行测试命令返回Hi 你的用户名! Youve successfully authenticated...即代表免密配置完全生效。✅真实用例 2多设备 SSH 密钥共存配置很多开发者同时用办公笔记本和个人家用电脑开发不需要在多个设备之间传输私钥每台设备分别执行一次密钥生成命令分别把各自的公钥添加到 GitHub 账号的 SSH 密钥列表中就可以实现多设备同时免密推送互不干扰同时保障私钥仅保存在本地安全合规。三、PyCharm 可视化 Git 集成配置PyCharm 自带成熟的 Git 可视化操作面板不需要开发者频繁记忆复杂命令行新手也能轻松完成版本管理操作以下是经过大量项目验证的最优配置组合。打开 PyCharm 的Settings → Version Control → Git选择之前安装的 Git 可执行文件路径测试连通性确认关联成功后按照下表勾选对应配置项从源头规避多数的新手版本管理问题选项的大致说明如下选项含义推荐度场景启用暂存区域开启后使用非模式提交界面支持分步暂存部分文件提交⭐⭐⭐⭐ 按需开启你今天写了 2 个功能模块第一个模块测试没问题要先提交第二个模块还没写完不想提交开启暂存区域就可以只选中第一个模块的代码提交不用把未完成的代码也一并上传如果即将提交 CRLF 行分隔符则发出警告跨平台协作时自动提示换行符冲突避免 Windows 和 Mac/Linux 的换行格式差异导致大量无效变更⭐⭐⭐⭐⭐ 强烈推荐勾选团队里有同事用 Mac 写代码你用 Windows 开发未开启该配置时两个人的换行符差异会让 Git 显示所有代码都被修改开启后会自动拦截冲突提示避免产生上千行无意义的变更记录在游离的 HEAD 中或变基期间提交时发出警告防止你在代码未绑定分支的状态下误提交导致提交记录丢失⭐⭐⭐⭐⭐ 强烈推荐勾选新手误点了签出历史版本处于游离 HEAD 状态提交代码之后切换分支会直接找不到刚写的代码开启该配置后会直接弹窗提示风险从根源避免代码丢失提交大于以下大小的文件时发出警告默认 50MB大文件提交前自动提示避免把二进制包、安装包这类不该进 Git 的文件提交进仓库⭐⭐⭐⭐⭐ 强烈推荐勾选50MB 阈值为行业通用合理默认值你不小心把项目依赖的 2GB 数据集压缩包加入了提交列表开启提示后会直接拦截避免把超大文件上传到 GitHub导致仓库体积臃肿后续无法正常克隆提交名称可能会导致其他系统出现问题的文件时发出警告自动检测文件名含特殊字符、大小写冲突的文件避免跨系统协作出错⭐⭐⭐⭐⭐ 强烈推荐勾选你本地创建了名为Demo.py的文件同事的 Linux 系统里又创建了同名的demo.py没有该提示会导致两个文件在跨系统同步时互相覆盖丢失内容✅真实用例 3PyCharm 默认提交作者信息配置很多新手提交代码后提交记录显示的作者名是未知乱码只需要在 Git 配置中全局设置用户信息gitconfig--globaluser.name你的GitHub用户名gitconfig--globaluser.email你GitHub绑定的邮箱配置完成后所有提交的记录都会带上你的标准身份标识团队协作时一眼就能看到每段代码的提交人方便后续问题追溯。四、本地项目推送到 GitHub 标准四步流程很多新手搞不清初始化代码推送的先后顺序照着下面的标准流程操作完全不会出现推送失败的问题第一步在 GitHub 网站上创建空白仓库登录 GitHub 后点击右上角新建仓库按钮填写仓库名称选择公开或私有权限不要勾选自动生成 README、.gitignore文件保持完全空白的远程仓库。然后选择SSH第二步在本地项目根目录初始化本地 Git 仓库在 PyCharm 中打开项目找到顶部菜单点 VCS →启用版本控制集成 Enable Version Control Integration…弹窗里选 Git点OK在 PyCharm 中打开你的项目右键选择Git → Create Git Repository选中当前项目文件夹完成本地版本库初始化。第三步本地代码执行提交右键选择Git → Commit Directory勾选需要提交的代码文件填写规范的提交说明后点击提交代码就会存入本地版本库中。返回Pycharm后你会发现项目里的文件名都变成红色了意思是这些文件还没被Git上传至GitHub在项目根目录上点右键 → Git → Commit注意只有我们刚刚配置了上面的版本管理才会看到GIt的选项第四步关联远程仓库推送至云端选择 PyCharm 顶部菜单栏的Git → Push首次推送时在弹窗中粘贴你 GitHub 空白仓库的 SSH 地址确认后就能把本地所有代码同步到远程 GitHub 仓库。✅真实用例 4中华诗词知识库项目初始化推送实操我之前开发的中华诗词知识库 KBCP 项目收录了 6.2 万首结构化诗词数据按照这个四步流程操作先在 GitHub 创建空白私有仓库本地关联项目根目录提交 Flask 后端代码、6 万首诗词 JSON 数据最后 SSH 推送后续团队协作者直接克隆仓库就能一键拉取完整项目。五、日常开发最简标准工作流养成固定三步操作每天开发都能顺畅维护代码版本适配绝大多数个人和中小团队开发场景每日开发启动执行 Pull 拉取远程最新代码本地完成当日功能开发Commit 改动代码 填写规范提交说明执行 Push 同步代码到云端 GitHub 仓库✅真实用例 5多人协作下的每日开发流程团队共同开发一个系统每天开工前所有人先执行一次 Pull 拉取队友前一天提交的代码写完自己负责的用户管理模块后提交再执行 Push 推送到远程仓库3 个人的开发内容互不冲突不需要手动拷贝代码互相传输。六、新手高频踩坑实战解决指南这些都是大量开发者在真实项目中踩过无数次总结出来的高频问题提前掌握可以避免浪费数小时的排查时间。6.1 SSH 22 端口连接超时解决方案新手配置完 SSH 后测试连接经常会返回ssh: connect to host github.com port 22: Connection timed out的报错这是本地网络的 22 端口被运营商限制访问导致的。只需要打开本地.ssh目录下的config文件写入下面的配置切换到 443 端口走 HTTPS 通道连接就能直接解决问题Host github.com User git Hostname ssh.github.com Port 443 IdentityFile ~/.ssh/id_ed25519✅真实用例 6企业内网下 GitHub 连通适配很多公司内网限制了 SSH 默认 22 端口的出站流量使用上述 443 端口的配置后完全可以绕过内网端口限制正常连接 GitHub 完成代码推送。6.2 .gitignore 排除文件配置如果不配置排除规则Git 会把项目里的本地配置文件、缓存文件、敏感数据目录全部上传到 GitHub造成信息泄露。在项目根目录新建名为.gitignore的文件写入下面的通用排除规则.idea/ __pycache__/ *.pyc .env data/✅真实用例 7避免数据库密码泄露场景项目data文件夹里保存了个人文件不希望上传到GitHub仓库如果没有写入.gitignore规则提交时就会把密码一并上传到公开 GitHub 仓库被爬虫抓取后会直接造成数据泄露把config.py加入排除列表就可以彻底避免这个问题。6.3 规范提交信息只写 “更新” 这种无意义的提交信息完全没有追溯价值过两周回头看根本想不起来这次改动了什么内容。推荐采用「类型 具体改动内容」的规范格式符合企业级提交规范提交类型前缀对应场景示例规范提交信息示例feat新增功能feat: 新增诗词多条件筛选功能fix修复 Bugfix: 修复作者别名检索不到苏轼的异常docs修改文档docs: 更新项目 README 部署说明refactor重构代码refactor: 优化向量检索接口响应速度✅真实用例 8半年前 Bug 追溯场景你半年前写的诗词检索接口现在出现返回结果为空的问题通过查看提交记录里的规范描述直接定位到当时修改 SQL 校验器的提交记录1 分钟就能找到问题根源比逐行翻几千行代码效率提升 10 倍以上。6.4 远程提交冲突可视化Push 代码时如果提示 “rejected” 报错说明远程仓库有其他人新提交的改动还没同步到本地。完全不用删除本地文件夹重来直接执行Git → PullPyCharm 会自动弹出三栏对比界面左边是你的本地修改右边是远程的改动中间是最终合并结果点一下界面上的箭头就能选择保留哪一侧的内容解决完冲突之后再次 Commit 再 Push 就可以顺利完成提交。✅真实用例 9多人同时修改同个文件冲突解决你和同事同时修改了诗词详情页的展示逻辑你修改了作者简介字段排版同事修改了诗词内容字段的样式Pull 之后 PyCharm 会把两处修改分别高亮显示你不需要重写整个文件只需要手动合并两边的有效改动1 分钟就能解决冲突不会丢失任何一方的修改内容。6.5 误提交敏感文件紧急回退新手不小心把包含密钥的文件提交到远程 GitHub 仓库不需要删除整个仓库重建执行下面的命令直接从 Git 历史中删除该文件同时保留本地文件gitrm--cached.envgitcommit-mremove sensitive env file from git historygitpush✅真实用例 10GitHub 远程仓库大文件清理之前不小心上传了一个 100MB 的压缩包到仓库导致后续所有人克隆仓库都特别慢使用BFG Repo-Cleaner工具直接从所有 Git 历史记录里删除这个大文件仓库体积瞬间就可以恢复到正常几十 MB 的大小不需要重新搭建整个项目仓库。6.6 本地提交未 Push 代码更换设备场景在A地写的代码只执行了 Commit 没有 Push到B地的电脑上发现没写完的内容不在远程仓库里只需要在A地的电脑上执行 Push 同步到公司电脑执行 Pull 就能拉取所有本地提交记录不需要通过微信等工具传输代码文件避免出现 “文件版本不对覆盖了最新代码” 的低级错误。6.7 历史版本回溯实战你某次修改后把诗词检索功能改崩了想要回到 3 天前功能正常的版本只需要在 PyCharm 的 Git 提交历史面板里找到 3 天前的正常提交记录右键选择Checkout Revision就能一键恢复到当时的所有代码状态比备份多个 zip 压缩包管理版本效率高 10 倍。总结Git 和 GitHub 从来不是复杂难以上手的技术工具它本质上给所有开发者提供了一份永不丢失的代码备份同时也搭建了和全球开发者交流协作的桥梁。先做好 SSH 免密配置提前写好规范的.gitignore规则每次提交前先拉取远程更新永远别写模糊无意义的提交信息。不用追求立刻背下所有命令行先用 PyCharm 的可视化面板完成日常操作慢慢在实践中熟悉版本管理的逻辑你很快就能完全掌握这项开发者必备的基础技能。