Git与GitHub基础入门:从零开始掌握版本控制与代码托管(完整图文教程)

前言

在软件开发的学习和实践中,你是否遇到过这些问题:代码改了又改,最后想回到三天前的版本却找不回来了;在不同电脑上写同一个项目,代码版本混乱不堪;想和别人一起协作开发,却不知道如何同步代码。

Git和GitHub就是解决这些问题的黄金组合。Git是本地版本控制工具,负责记录你本地文件的每一次修改历史;GitHub是云端代码托管平台,可以把你的Git项目上传到网上,方便备份、展示和协作。

简单理解:

  • Git = 本地版本控制工具(记录代码历史、分支管理)
  • GitHub = 云端代码托管与协作平台(备份代码、团队协作、开源共享)

本文将从零开始,带你完成从Git下载安装、GitHub账号注册、SSH密钥配置到代码提交的全流程,每一步都配有详细说明,适合完全零基础的初学者。


文章目录

    • 前言
      • 一、GitHub简介与核心功能
        • [1.1 什么是GitHub](#1.1 什么是GitHub)
        • [1.2 GitHub与Git的关系](#1.2 GitHub与Git的关系)
        • [1.3 GitHub在软件开发中的价值](#1.3 GitHub在软件开发中的价值)
      • 二、Git下载与安装
        • [2.1 下载Git安装包](#2.1 下载Git安装包)
        • [2.2 安装Git(Windows)](#2.2 安装Git(Windows))
        • [2.3 验证安装](#2.3 验证安装)
      • 三、GitHub账号注册
        • [3.1 注册流程](#3.1 注册流程)
        • [3.2 注册注意事项](#3.2 注册注意事项)
      • 四、Git基础配置
        • [4.1 全局配置](#4.1 全局配置)
        • [4.2 局部配置](#4.2 局部配置)
        • [4.3 查看已配置信息](#4.3 查看已配置信息)
        • [4.4 可选优化配置](#4.4 可选优化配置)
        • [4.5 修改已存在的配置](#4.5 修改已存在的配置)
      • 五、SSH密钥配置(免密连接GitHub)
        • [5.1 检查是否已有SSH密钥](#5.1 检查是否已有SSH密钥)
        • [5.2 生成新的SSH密钥](#5.2 生成新的SSH密钥)
        • [5.3 启动SSH代理并添加私钥](#5.3 启动SSH代理并添加私钥)
        • [5.4 复制公钥内容](#5.4 复制公钥内容)
        • [5.5 在GitHub上添加公钥](#5.5 在GitHub上添加公钥)
        • [5.6 验证SSH连接是否成功](#5.6 验证SSH连接是否成功)
      • 六、仓库创建与基本代码提交
        • [6.1 方式一:从本地开始追踪一个项目(本地已有代码)](#6.1 方式一:从本地开始追踪一个项目(本地已有代码))
        • [6.2 方式二:从GitHub仓库开始(先有远程仓库)](#6.2 方式二:从GitHub仓库开始(先有远程仓库))
        • [6.3 日常开发四步曲](#6.3 日常开发四步曲)
      • 七、常用Git命令速查
      • 八、总结
    • 附:常见问题与解决

一、GitHub简介与核心功能

1.1 什么是GitHub

GitHub是全球最大的代码托管平台,基于Git版本控制系统构建,为开发者提供云端代码存储与协作开发服务。它不仅仅是"代码网盘",更是一个完整的开发者工作台。

核心功能包括:

  • 代码托管:把项目代码安全存储在云端,本地电脑出问题也不怕丢失
  • 版本管理:记录每一次修改,可随时回滚到任意历史版本、对比差异
  • 团队协作:支持多人同时开发同一个项目,代码互不覆盖
  • Issue(任务/BUG管理) :提需求、报BUG、分配任务
  • Pull Request(PR) :提交代码改动,让团队成员审核通过后再合并
  • GitHub Actions:自动化测试、打包、部署(CI/CD)
  • GitHub Pages:免费搭建静态网站
  • Star / Fork / Watch:收藏、复制、关注感兴趣的项目
1.2 GitHub与Git的关系

很多初学者容易把Git和GitHub混为一谈,但它们其实是两个不同的东西:

对比维度 Git GitHub
本质 本地版本控制软件 云端代码托管平台
运行位置 安装在本地电脑 运行在云端服务器
是否需要联网 不需要联网也能使用 必须联网才能访问
核心功能 记录代码历史、分支管理 存放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 安装Git(Windows)

双击下载的安装包,按以下步骤操作:

  1. 接受许可协议:点击"Next"
  2. 选择安装路径 :建议保持默认(C:\Program Files\Git),避免使用中文或空格路径
  3. 选择组件:保持默认勾选,建议勾选"Git Bash Here"(方便右键快速打开命令行)
  4. 选择默认编辑器:如果安装了VSCode,建议选择"Use Visual Studio Code as Git's default editor"
  5. 调整PATH环境变量:选择"Git from the command line and also from 3rd-party software"(推荐)
  6. 选择HTTPS传输后端:选择"Use the OpenSSL library"
  7. 配置行结束符转换:选择"Checkout Windows-style, commit Unix-style line endings"
  8. 选择终端模拟器:选择"Use MinTTY"(默认)
  9. 其他选项:保持默认即可,一路点击"Next"完成安装
2.3 验证安装

安装完成后,在桌面或任意文件夹空白处右键,选择"Git Bash Here"打开Git Bash终端。输入以下命令验证安装是否成功:

bash 复制代码
git --version

如果显示类似git version 2.xx.x的信息,说明安装成功。

三、GitHub账号注册

3.1 注册流程
  1. 打开GitHub官网:https://github.com
  2. 点击右上角的"Sign up"进入注册页面
  3. 填写注册信息:
    • Email:输入常用邮箱(QQ邮箱、网易邮箱、谷歌邮箱均可)
    • Password:设置密码(需包含字母、数字、特殊字符)
    • Username:自定义用户名(将作为仓库地址的一部分)
  4. 选择国家或地区
  5. 完成邮箱验证(GitHub会发送验证邮件到你的邮箱)
  6. 点击"Create account"完成注册
3.2 注册注意事项
  • 用户名一经确定,后续修改会影响仓库地址,建议慎重选择
  • 邮箱建议使用常用邮箱,后续Git配置会用到
  • 密码要足够复杂,保障账户安全

四、Git基础配置

Git安装完成后,第一次使用前需要配置用户名和邮箱。这些信息会记录在每一次提交中,让别人知道是谁做了修改。

4.1 全局配置

打开Git Bash,执行以下命令:

bash 复制代码
# 配置用户名(换成你的GitHub用户名)
git config --global user.name "Your GitHub Username"

# 配置邮箱(换成你注册GitHub的邮箱)
git config --global user.email "Your GitHub Email"

例如:

bash 复制代码
git config --global user.name "PLAYEROFMYLIFE"
git config --global user.email "230xxx@qq.com"

--global表示全局配置,对所有仓库生效。配置完成后,所有提交记录都会带上这个身份信息。

4.2 局部配置

如果某个特定项目需要使用不同的用户名或邮箱,可以在项目目录下单独配置:

bash 复制代码
# 进入具体项目路径
cd /path/to/your/project

# 配置当前仓库的用户名和邮箱(不加--global)
git config user.name "Your GitHub Username"
git config user.email "Your GitHub Email"

局部配置会覆盖全局配置,仅对当前仓库生效。

4.3 查看已配置信息
bash 复制代码
# 查看所有配置
git config --list

# 查看全局配置
git config --global --list

# 查看当前仓库局部配置(需进入仓库目录)
git config --local --list
4.4 可选优化配置
bash 复制代码
# 开启彩色输出
git config --global color.ui auto

# 扩大HTTP缓冲区(解决大文件推送问题)
git config --global http.postBuffer 524288000

# 配置换行符规则(Windows推荐)
git config --global core.autocrlf true

# 配置命令简写(类似Linux的alias)
git config --global alias.st status   # 之后可以用 git st 代替 git status
git config --global alias.br branch   # 之后可以用 git br 代替 git branch

# 设置默认分支名为main(与GitHub保持一致)
git config --global init.defaultBranch main
4.5 修改已存在的配置
bash 复制代码
# 删除某项配置
git config --global --unset user.email

# 重新设置即可覆盖原有配置
git config --global user.email "newemail@example.com"

五、SSH密钥配置(免密连接GitHub)

为了让本地Git与GitHub之间的通信更安全、更方便,推荐配置SSH密钥。配置后可以彻底摆脱每次操作都要输入账号密码的麻烦。

为什么选择SSH而非HTTPS?

HTTPS方式的本质是"账号密码验证",密码存在泄露风险;而SSH基于"公私钥"加密验证,私钥保存在本地绝不外传,安全性高得多。

5.1 检查是否已有SSH密钥

打开Git Bash,执行:

bash 复制代码
ls -al ~/.ssh
# 或
ll -a ~/.ssh

如果看到id_rsaid_rsa.pub(或id_ed25519id_ed25519.pub),说明已有SSH密钥,可以跳到步骤5.4。如果目录为空或提示"No such file or directory",继续下一步。

5.2 生成新的SSH密钥

执行以下命令(把邮箱换成你GitHub注册的邮箱):

bash 复制代码
# 方式一:使用RSA算法(兼容性更好)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 方式二:使用Ed25519算法(更安全、更高效,推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"

执行后终端会依次出现提示,全程按回车即可:

  1. 第一步提示Enter file in which to save the key:直接回车(使用默认路径)
  2. 第二步提示Enter passphrase:直接回车(设置密码的话每次用SSH都要输入,新手直接留空即可)
  3. 第三步提示Enter same passphrase again:再次回车

生成成功后,会在~/.ssh/目录下产生两个文件:

  • 私钥id_rsaid_ed25519绝对不能泄露!
  • 公钥id_rsa.pubid_ed25519.pub(需要复制到GitHub)
5.3 启动SSH代理并添加私钥
bash 复制代码
# 启动SSH代理
eval "$(ssh-agent -s)"

# 将私钥添加到代理中(根据你生成的密钥类型选择)
ssh-add ~/.ssh/id_rsa
# 或
ssh-add ~/.ssh/id_ed25519
5.4 复制公钥内容

不同操作系统复制命令不同:

bash 复制代码
# Windows (Git Bash)
clip < ~/.ssh/id_rsa.pub
# 或
clip < ~/.ssh/id_ed25519.pub

# Linux
xclip -sel clip < ~/.ssh/id_rsa.pub

# macOS
pbcopy < ~/.ssh/id_rsa.pub

如果上述命令不生效,可以直接用记事本打开公钥文件(路径如C:\Users\你的用户名\.ssh\id_rsa.pub),手动复制全部内容。

5.5 在GitHub上添加公钥
  1. 登录GitHub,点击右上角头像 → 选择 Settings(设置)
  2. 在左侧菜单栏找到 SSH and GPG keys
  3. 点击右上角的 New SSH key
  4. 填写信息:
    • Title:给这把密钥起个名字(如"我的笔记本电脑",方便识别是哪台设备)
    • Key type:保持默认"Authentication Key"
    • Key:把刚才复制的公钥内容粘贴进去
  5. 点击 Add SSH key
  6. 弹出验证密码提示,输入GitHub密码确认即可

5.6 验证SSH连接是否成功

回到Git Bash终端,执行:

bash 复制代码
ssh -T git@github.com

第一次执行会提示Are you sure you want to continue connecting,输入yes回车。

如果看到类似以下信息,说明配置成功:

复制代码
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.

常见问题排查

问题1:连接被拒绝(端口22被封)

复制代码
ssh: connect to host github.com port 22: Connection refused

解决方法:创建SSH配置文件,强制使用443端口。

bash 复制代码
nano ~/.ssh/config

在文件中添加以下内容:

复制代码
Host github.com
    HostName ssh.github.com
    Port 443
    User git

保存后退出,再次执行ssh -T git@github.com测试。

问题2:公钥复制错误

检查是否漏复制了最后一行(邮箱部分),或多了空格。

问题3:生成的邮箱和GitHub不一致

生成密钥时用的邮箱必须和GitHub注册邮箱一致。

问题4:私钥未添加到SSH代理

重新执行ssh-add ~/.ssh/id_rsa(或id_ed25519)。

问题5:HOME路径不正确

bash 复制代码
echo $HOME
# 示例输出:/c/Users/你的用户名

如果路径不正确,需要修正环境变量。

强制指定密钥测试

bash 复制代码
ssh -i "/c/Users/你的用户名/.ssh/id_ed25519" -T git@github.com

六、仓库创建与基本代码提交

完成SSH配置后,就可以开始创建仓库并提交代码了。这里介绍两种方式:从本地开始追踪项目 (本地已有代码)和从GitHub仓库开始(先有远程仓库)。

6.1 方式一:从本地开始追踪一个项目(本地已有代码)

步骤1:进入本地项目文件夹

打开Git Bash,进入你的项目目录:

bash 复制代码
# 切换盘符(如果在D盘)
cd D:
# 进入项目文件夹
cd learngit/

也可以找到 learngit 项目文件夹;空白处右键 → Git Bash Here;直接执行后续 git 初始化命令,无需 cd 跳转。

步骤2:初始化Git仓库

bash 复制代码
# 初始化Git仓库,会生成一个.git隐藏文件夹
# --initial-branch=main 指定默认分支为main(与GitHub保持一致)
git init --initial-branch=main

执行后终端提示Initialized empty Git repository in ...,说明初始化成功。

.git文件夹是Git的版本数据库,记录了所有历史变更,千万不要随意删除或修改里面的内容。

步骤3:创建.gitignore文件

.gitignore用于忽略不需要追踪的文件(如编译产物、日志、临时文件等):

bash 复制代码
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:添加文件到暂存区并提交

bash 复制代码
# 把当前目录所有文件添加到暂存区(.代表所有文件)
git add .

# 提交暂存区的文件到本地仓库(-m后是提交说明,必填)
git commit -m "first commit"

git add是把文件放入"购物车"(暂存区),git commit是正式"买单"(保存到本地仓库)。

步骤5:在GitHub上创建远程仓库

  1. 登录GitHub,点击右上角 + 号 → 选择 New repository
  2. 填写仓库信息:
    • Repository name:仓库名(建议和本地项目文件夹名一致,方便识别)
    • Description:项目描述
    • Visibility:选择Public(公开)或Private(私有)
    • 重要提示不要勾选"Add a README file"、"Add .gitignore"、"Choose a license"------这些会让远程仓库非空,后续推送会产生冲突
  3. 点击 Create repository
  4. 复制仓库的SSH地址(形如git@github.com:用户名/仓库名.git

步骤6:关联本地仓库和远程仓库

bash 复制代码
# 添加远程仓库(origin是远程仓库的别名,默认用origin即可)
git remote add origin git@github.com:PLAYEROFMYLIFE/learngit.git

# 验证是否关联成功
git remote -v

步骤7:将本地代码推送到GitHub

bash 复制代码
# 把本地main分支推送到origin远程仓库的main分支
# -u是绑定默认推送分支,后续只需git push即可
git push --set-upstream origin main

推送成功后,刷新GitHub仓库页面即可看到代码。

6.2 方式二:从GitHub仓库开始(先有远程仓库)

步骤1:克隆远程仓库到本地

在GitHub仓库页面点击"Code"按钮,复制SSH地址,然后在Git Bash中执行:

bash 复制代码
git clone git@github.com:PLAYEROFMYLIFE/learngit.git

这会将远程仓库完整克隆到本地当前目录。

步骤2:本地修改文件并提交

bash 复制代码
# 查看修改状态
git status

# 添加修改到暂存区
git add 文件名

# 提交修改到本地仓库
git commit -m "修改说明"

# 推送到远程仓库
git push origin main
6.3 日常开发四步曲

日常开发中,最常用的四个命令是:

bash 复制代码
# 1. 查看当前状态(哪些文件被修改了)
git status

# 2. 添加修改到暂存区(放购物车)
git add .          # 添加所有修改
git add 文件名     # 添加指定文件

# 3. 提交到本地仓库(正式保存)
git commit -m "提交说明"

# 4. 推送到远程仓库(同步到云端)
git push

七、常用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的基础入门知识:

  1. 概念理解:Git是本地版本控制工具,GitHub是云端代码托管平台
  2. 环境搭建:Git下载安装、GitHub账号注册、Git基础配置(用户名和邮箱)
  3. SSH配置:生成SSH密钥、添加到GitHub、验证连接
  4. 代码提交:两种方式(本地→远程、远程→本地)的完整流程

掌握这些基础知识后,你就可以开始使用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 git@github.com:用户名/仓库名.git
推送时提示"non-fast-forward" 远程仓库有本地没有的提交 先执行git pull拉取最新代码再推送
克隆时提示"Permission denied" SSH密钥未正确配置 检查公钥是否添加到GitHub,私钥是否添加到SSH代理
相关推荐
xd1855785551 小时前
敲门砖工坊-求职信定制的HarmonyOS开发实践
人工智能·华为·harmonyos·鸿蒙
逻辑君1 小时前
认知神经科学研究报告【20260112】
人工智能·深度学习·数学建模·量子计算
tyqtyq222 小时前
求职信生成:AI 智能求职信撰写系统的鸿蒙实现
人工智能·学习·华为·生活·harmonyos
中微极客2 小时前
TensorFlow模型量化实战:从精度到延迟的优化指南
人工智能·python·tensorflow
Lambert-Wu2 小时前
常用激活函数总结
人工智能·深度学习·机器学习
MartinYeung52 小时前
[论文学习]PrivacyLens:评估语言模型在行动中的隐私规范意识
人工智能·学习·语言模型
ForDreamMusk2 小时前
批量归一化
人工智能·算法·机器学习
牧濑红莉2 小时前
零基础认识大语言模型(LLM)工作原理(2.Token 到底是什么?)
人工智能·语言模型·chatgpt
AImoon11.12 小时前
客易云关注“人工智能+”行动深化,智能经济新形态写入政府工作报告
人工智能