)
前言在软件开发的学习和实践中你是否遇到过这些问题代码改了又改最后想回到三天前的版本却找不回来了在不同电脑上写同一个项目代码版本混乱不堪想和别人一起协作开发却不知道如何同步代码。Git和GitHub就是解决这些问题的黄金组合。Git是本地版本控制工具负责记录你本地文件的每一次修改历史GitHub是云端代码托管平台可以把你的Git项目上传到网上方便备份、展示和协作。简单理解Git 本地版本控制工具记录代码历史、分支管理GitHub 云端代码托管与协作平台备份代码、团队协作、开源共享本文将从零开始带你完成从Git下载安装、GitHub账号注册、SSH密钥配置到代码提交的全流程每一步都配有详细说明适合完全零基础的初学者。文章目录前言一、GitHub简介与核心功能1.1 什么是GitHub1.2 GitHub与Git的关系1.3 GitHub在软件开发中的价值二、Git下载与安装2.1 下载Git安装包2.2 安装GitWindows2.3 验证安装三、GitHub账号注册3.1 注册流程3.2 注册注意事项四、Git基础配置4.1 全局配置4.2 局部配置4.3 查看已配置信息4.4 可选优化配置4.5 修改已存在的配置五、SSH密钥配置免密连接GitHub5.1 检查是否已有SSH密钥5.2 生成新的SSH密钥5.3 启动SSH代理并添加私钥5.4 复制公钥内容5.5 在GitHub上添加公钥5.6 验证SSH连接是否成功六、仓库创建与基本代码提交6.1 方式一从本地开始追踪一个项目本地已有代码6.2 方式二从GitHub仓库开始先有远程仓库6.3 日常开发四步曲七、常用Git命令速查八、总结附常见问题与解决一、GitHub简介与核心功能1.1 什么是GitHubGitHub是全球最大的代码托管平台基于Git版本控制系统构建为开发者提供云端代码存储与协作开发服务。它不仅仅是“代码网盘”更是一个完整的开发者工作台。核心功能包括代码托管把项目代码安全存储在云端本地电脑出问题也不怕丢失版本管理记录每一次修改可随时回滚到任意历史版本、对比差异团队协作支持多人同时开发同一个项目代码互不覆盖Issue任务/BUG管理提需求、报BUG、分配任务Pull RequestPR提交代码改动让团队成员审核通过后再合并GitHub Actions自动化测试、打包、部署CI/CDGitHub Pages免费搭建静态网站Star / Fork / Watch收藏、复制、关注感兴趣的项目1.2 GitHub与Git的关系很多初学者容易把Git和GitHub混为一谈但它们其实是两个不同的东西对比维度GitGitHub本质本地版本控制软件云端代码托管平台运行位置安装在本地电脑运行在云端服务器是否需要联网不需要联网也能使用必须联网才能访问核心功能记录代码历史、分支管理存放Git仓库、团队协作、代码审查Git是工具GitHub是平台。你在本地用Git管理代码然后把代码推送到GitHub上备份和分享——Git让版本控制成为可能GitHub让版本控制变得可以协作。1.3 GitHub在软件开发中的价值代码安全备份本地电脑损坏也不怕代码丢失多人协作开发团队成员分工写代码互不覆盖规范化开发流程提交 → 审核 → 合并PR流程开源共享全球开发者可以一起贡献项目降低沟通成本代码、文档、任务管理都在一处自动化CI/CD自动测试、自动部署个人作品展示GitHub就是程序员的简历和作品集二、Git下载与安装2.1 下载Git安装包访问Git官网下载页面https://git-scm.com/downloads根据操作系统选择对应版本Windows点击“Windows”下载.exe安装包macOS推荐使用Homebrew安装brew install git或下载官方安装包Linux使用系统包管理器安装Ubuntu:sudo apt-get install git安装前确认系统架构打开CMD输入systeminfo查看系统类型确认是X64还是ARM64下载对应版本。2.2 安装GitWindows双击下载的安装包按以下步骤操作接受许可协议点击“Next”选择安装路径建议保持默认C:\Program Files\Git避免使用中文或空格路径选择组件保持默认勾选建议勾选“Git Bash Here”方便右键快速打开命令行选择默认编辑器如果安装了VSCode建议选择“Use Visual Studio Code as Git‘s default editor”调整PATH环境变量选择“Git from the command line and also from 3rd-party software”推荐选择HTTPS传输后端选择“Use the OpenSSL library”配置行结束符转换选择“Checkout Windows-style, commit Unix-style line endings”选择终端模拟器选择“Use MinTTY”默认其他选项保持默认即可一路点击“Next”完成安装2.3 验证安装安装完成后在桌面或任意文件夹空白处右键选择“Git Bash Here”打开Git Bash终端。输入以下命令验证安装是否成功git--version如果显示类似git version 2.xx.x的信息说明安装成功。三、GitHub账号注册3.1 注册流程打开GitHub官网https://github.com点击右上角的“Sign up”进入注册页面填写注册信息Email输入常用邮箱QQ邮箱、网易邮箱、谷歌邮箱均可Password设置密码需包含字母、数字、特殊字符Username自定义用户名将作为仓库地址的一部分选择国家或地区完成邮箱验证GitHub会发送验证邮件到你的邮箱点击“Create account”完成注册3.2 注册注意事项用户名一经确定后续修改会影响仓库地址建议慎重选择邮箱建议使用常用邮箱后续Git配置会用到密码要足够复杂保障账户安全四、Git基础配置Git安装完成后第一次使用前需要配置用户名和邮箱。这些信息会记录在每一次提交中让别人知道是谁做了修改。4.1 全局配置打开Git Bash执行以下命令# 配置用户名换成你的GitHub用户名gitconfig--globaluser.nameYour GitHub Username# 配置邮箱换成你注册GitHub的邮箱gitconfig--globaluser.emailYour GitHub Email例如gitconfig--globaluser.namePLAYEROFMYLIFEgitconfig--globaluser.email230xxxqq.com--global表示全局配置对所有仓库生效。配置完成后所有提交记录都会带上这个身份信息。4.2 局部配置如果某个特定项目需要使用不同的用户名或邮箱可以在项目目录下单独配置# 进入具体项目路径cd/path/to/your/project# 配置当前仓库的用户名和邮箱不加--globalgitconfig user.nameYour GitHub Usernamegitconfig user.emailYour GitHub Email局部配置会覆盖全局配置仅对当前仓库生效。4.3 查看已配置信息# 查看所有配置gitconfig--list# 查看全局配置gitconfig--global--list# 查看当前仓库局部配置需进入仓库目录gitconfig--local--list4.4 可选优化配置# 开启彩色输出gitconfig--globalcolor.ui auto# 扩大HTTP缓冲区解决大文件推送问题gitconfig--globalhttp.postBuffer524288000# 配置换行符规则Windows推荐gitconfig--globalcore.autocrlftrue# 配置命令简写类似Linux的aliasgitconfig--globalalias.st status# 之后可以用 git st 代替 git statusgitconfig--globalalias.br branch# 之后可以用 git br 代替 git branch# 设置默认分支名为main与GitHub保持一致gitconfig--globalinit.defaultBranch main4.5 修改已存在的配置# 删除某项配置gitconfig--global--unsetuser.email# 重新设置即可覆盖原有配置gitconfig--globaluser.emailnewemailexample.com五、SSH密钥配置免密连接GitHub为了让本地Git与GitHub之间的通信更安全、更方便推荐配置SSH密钥。配置后可以彻底摆脱每次操作都要输入账号密码的麻烦。为什么选择SSH而非HTTPSHTTPS方式的本质是“账号密码验证”密码存在泄露风险而SSH基于“公私钥”加密验证私钥保存在本地绝不外传安全性高得多。5.1 检查是否已有SSH密钥打开Git Bash执行ls-al~/.ssh# 或ll-a~/.ssh如果看到id_rsa和id_rsa.pub或id_ed25519和id_ed25519.pub说明已有SSH密钥可以跳到步骤5.4。如果目录为空或提示“No such file or directory”继续下一步。5.2 生成新的SSH密钥执行以下命令把邮箱换成你GitHub注册的邮箱# 方式一使用RSA算法兼容性更好ssh-keygen-trsa-b4096-Cyour_emailexample.com# 方式二使用Ed25519算法更安全、更高效推荐ssh-keygen-ted25519-Cyour_emailexample.com执行后终端会依次出现提示全程按回车即可第一步提示Enter file in which to save the key直接回车使用默认路径第二步提示Enter passphrase直接回车设置密码的话每次用SSH都要输入新手直接留空即可第三步提示Enter same passphrase again再次回车生成成功后会在~/.ssh/目录下产生两个文件私钥id_rsa或id_ed25519绝对不能泄露公钥id_rsa.pub或id_ed25519.pub需要复制到GitHub5.3 启动SSH代理并添加私钥# 启动SSH代理eval$(ssh-agent-s)# 将私钥添加到代理中根据你生成的密钥类型选择ssh-add ~/.ssh/id_rsa# 或ssh-add ~/.ssh/id_ed255195.4 复制公钥内容不同操作系统复制命令不同# Windows (Git Bash)clip~/.ssh/id_rsa.pub# 或clip~/.ssh/id_ed25519.pub# Linuxxclip-selclip~/.ssh/id_rsa.pub# macOSpbcopy~/.ssh/id_rsa.pub如果上述命令不生效可以直接用记事本打开公钥文件路径如C:\Users\你的用户名\.ssh\id_rsa.pub手动复制全部内容。5.5 在GitHub上添加公钥登录GitHub点击右上角头像 → 选择Settings设置在左侧菜单栏找到SSH and GPG keys点击右上角的New SSH key填写信息Title给这把密钥起个名字如“我的笔记本电脑”方便识别是哪台设备Key type保持默认“Authentication Key”Key把刚才复制的公钥内容粘贴进去点击Add SSH key弹出验证密码提示输入GitHub密码确认即可5.6 验证SSH连接是否成功回到Git Bash终端执行ssh-Tgitgithub.com第一次执行会提示Are you sure you want to continue connecting输入yes回车。如果看到类似以下信息说明配置成功Hi 你的用户名! Youve successfully authenticated, but GitHub does not provide shell access.常见问题排查问题1连接被拒绝端口22被封ssh: connect to host github.com port 22: Connection refused解决方法创建SSH配置文件强制使用443端口。nano~/.ssh/config在文件中添加以下内容Host github.com HostName ssh.github.com Port 443 User git保存后退出再次执行ssh -T gitgithub.com测试。问题2公钥复制错误检查是否漏复制了最后一行邮箱部分或多了空格。问题3生成的邮箱和GitHub不一致生成密钥时用的邮箱必须和GitHub注册邮箱一致。问题4私钥未添加到SSH代理重新执行ssh-add ~/.ssh/id_rsa或id_ed25519。问题5HOME路径不正确echo$HOME# 示例输出/c/Users/你的用户名如果路径不正确需要修正环境变量。强制指定密钥测试ssh-i/c/Users/你的用户名/.ssh/id_ed25519-Tgitgithub.com六、仓库创建与基本代码提交完成SSH配置后就可以开始创建仓库并提交代码了。这里介绍两种方式从本地开始追踪项目本地已有代码和从GitHub仓库开始先有远程仓库。6.1 方式一从本地开始追踪一个项目本地已有代码步骤1进入本地项目文件夹打开Git Bash进入你的项目目录# 切换盘符如果在D盘cdD:# 进入项目文件夹cdlearngit/也可以找到 learngit 项目文件夹空白处右键 → Git Bash Here直接执行后续 git 初始化命令无需 cd 跳转。步骤2初始化Git仓库# 初始化Git仓库会生成一个.git隐藏文件夹# --initial-branchmain 指定默认分支为main与GitHub保持一致gitinit --initial-branchmain执行后终端提示Initialized empty Git repository in ...说明初始化成功。.git文件夹是Git的版本数据库记录了所有历史变更千万不要随意删除或修改里面的内容。步骤3创建.gitignore文件.gitignore用于忽略不需要追踪的文件如编译产物、日志、临时文件等touch.gitignore在.gitignore中写入要忽略的文件或目录例如# 数据集文件夹 data/ dataset/ datasets/ train_data/ val_data/ *.zip *.tar *.tar.gz *.rar *.7z # 模型权重、检查点 checkpoints/ weights/ *.pth *.pt *.ckpt *.onnx *.h5 *.pkl # 训练缓存、输出文件 runs/ # Tensorboard日志 output/ predictions/ .cache/ torch_cache/ # 虚拟环境、安装包 venv/ .venv/ env/ *.whl把数据集统一放在 dataset/、data/ 目录添加上面规则后git add 会自动跳过仅保留代码、配置文件cfg/yolov3-custom.cfg上传数据集单独网盘 / 本地存储仓库体积极小推送零报错。平台单文件 100MB 限制普通 Git 代码仓库上限GitHub 免费单仓库 2GB步骤4添加文件到暂存区并提交# 把当前目录所有文件添加到暂存区.代表所有文件gitadd.# 提交暂存区的文件到本地仓库-m后是提交说明必填gitcommit-mfirst commitgit add是把文件放入“购物车”暂存区git commit是正式“买单”保存到本地仓库。步骤5在GitHub上创建远程仓库登录GitHub点击右上角号 → 选择New repository填写仓库信息Repository name仓库名建议和本地项目文件夹名一致方便识别Description项目描述Visibility选择Public公开或Private私有重要提示不要勾选“Add a README file”、“Add .gitignore”、“Choose a license”——这些会让远程仓库非空后续推送会产生冲突点击Create repository复制仓库的SSH地址形如gitgithub.com:用户名/仓库名.git步骤6关联本地仓库和远程仓库# 添加远程仓库origin是远程仓库的别名默认用origin即可gitremoteaddorigin gitgithub.com:PLAYEROFMYLIFE/learngit.git# 验证是否关联成功gitremote-v步骤7将本地代码推送到GitHub# 把本地main分支推送到origin远程仓库的main分支# -u是绑定默认推送分支后续只需git push即可gitpush --set-upstream origin main推送成功后刷新GitHub仓库页面即可看到代码。6.2 方式二从GitHub仓库开始先有远程仓库步骤1克隆远程仓库到本地在GitHub仓库页面点击“Code”按钮复制SSH地址然后在Git Bash中执行gitclone gitgithub.com:PLAYEROFMYLIFE/learngit.git这会将远程仓库完整克隆到本地当前目录。步骤2本地修改文件并提交# 查看修改状态gitstatus# 添加修改到暂存区gitadd文件名# 提交修改到本地仓库gitcommit-m修改说明# 推送到远程仓库gitpush origin main6.3 日常开发四步曲日常开发中最常用的四个命令是# 1. 查看当前状态哪些文件被修改了gitstatus# 2. 添加修改到暂存区放购物车gitadd.# 添加所有修改gitadd文件名# 添加指定文件# 3. 提交到本地仓库正式保存gitcommit-m提交说明# 4. 推送到远程仓库同步到云端gitpush七、常用Git命令速查命令作用git init在当前目录初始化一个新的Git仓库git clone 地址克隆远程仓库到本地git status查看当前工作区和暂存区的状态git add 文件将文件添加到暂存区git commit -m 说明将暂存区内容提交到本地仓库git push将本地提交推送到远程仓库git pull从远程仓库拉取最新代码并合并git log查看提交历史git branch查看分支列表git remote -v查看远程仓库配置八、总结本文从零开始完整讲解了Git与GitHub的基础入门知识概念理解Git是本地版本控制工具GitHub是云端代码托管平台环境搭建Git下载安装、GitHub账号注册、Git基础配置用户名和邮箱SSH配置生成SSH密钥、添加到GitHub、验证连接代码提交两种方式本地→远程、远程→本地的完整流程掌握这些基础知识后你就可以开始使用Git和GitHub管理自己的代码项目了。后续可以进一步学习分支管理、冲突解决、Pull Request等进阶内容逐步向团队协作和开源贡献迈进。附常见问题与解决问题现象可能原因解决方案安装Git后找不到Git Bash安装时未勾选相关组件重新运行安装程序勾选“Git Bash Here”git --version提示找不到命令Git未添加到PATH环境变量重新安装选择“Git from the command line”SSH连接超时端口22被封锁配置SSH使用443端口见5.6节git push要求输入密码使用了HTTPS地址而非SSH改用SSH地址git remote set-url origin gitgithub.com:用户名/仓库名.git推送时提示“non-fast-forward”远程仓库有本地没有的提交先执行git pull拉取最新代码再推送克隆时提示“Permission denied”SSH密钥未正确配置检查公钥是否添加到GitHub私钥是否添加到SSH代理