文章目录
-
- 前言
- [一、GitHub 基础入门](#一、GitHub 基础入门)
-
- [1.1 什么是 GitHub?](#1.1 什么是 GitHub?)
- [1.2 GitHub 与 Git 的关系](#1.2 GitHub 与 Git 的关系)
- [1.3 GitHub 的价值](#1.3 GitHub 的价值)
- [二、账号注册与 SSH 配置](#二、账号注册与 SSH 配置)
-
- [2.1 注册 GitHub 账号](#2.1 注册 GitHub 账号)
- [2.2 安装 Git 并配置](#2.2 安装 Git 并配置)
- [2.3 SSH 密钥配置(重点)](#2.3 SSH 密钥配置(重点))
-
- [生成 SSH 密钥](#生成 SSH 密钥)
- [启动 SSH 代理并添加私钥](#启动 SSH 代理并添加私钥)
- [复制公钥到 GitHub](#复制公钥到 GitHub)
- 验证是否成功
- 三、仓库创建与代码提交
-
- [3.1 从本地开始:已有项目上传到 GitHub](#3.1 从本地开始:已有项目上传到 GitHub)
- [3.2 从 GitHub 开始:克隆已有仓库](#3.2 从 GitHub 开始:克隆已有仓库)
- [四、Git 分支管理](#四、Git 分支管理)
前言
作为一名程序员,GitHub 是我们每天都要打交道的平台。但很多初学者对 GitHub 的理解往往停留在"代码网盘"的层面,对其强大的协作功能知之甚少。
一、GitHub 基础入门
1.1 什么是 GitHub?
GitHub = 基于 Git 的代码托管 + 协作开发平台 。简单来说,它是程序员的 "云端代码网盘 + 协作工作台 + 项目社区"。
核心功能一览
| 功能 | 说明 |
|---|---|
| 代码托管 | 把项目代码存在云端 |
| 版本管理 | 记录每一次修改,可回滚、可对比 |
| 团队协作 | 多人一起开发同一个项目 |
| Issue | 任务/BUG管理,提需求、报 bug |
| Pull Request | 提交代码改动,审核后合并 |
| GitHub Actions | 自动化测试、打包、部署 |
| GitHub Pages | 免费搭建静态网站 |
| Star/Fork/Watch | 收藏、复制、关注别人项目 |
1.2 GitHub 与 Git 的关系
这是初学者最容易混淆的概念:
| Git | GitHub | |
|---|---|---|
| 本质 | 本地版本控制工具 | 云端代码托管平台 |
| 是否需要联网 | 不需要 | 需要 |
| 主要作用 | 记录代码历史、分支管理 | 存放代码、团队协作 |
一句话总结:Git 是工具,GitHub 是平台。
你在本地用 Git 写代码,然后通过 push 命令把代码上传到 GitHub。GitHub 让 Git 从"本地工具"变成了"云端协作平台"。
1.3 GitHub 的价值
- 代码安全备份:电脑坏了也不怕
- 多人协作开发:分工写代码,不互相覆盖
- 规范化流程:提交 → 审核 → 合并 → 发布
- 开源共享:全球开发者一起贡献项目
- 降低沟通成本:代码、文档、任务都在一处
二、账号注册与 SSH 配置
2.1 注册 GitHub 账号
访问 github.com,使用邮箱注册即可(国内 QQ/网易邮箱、国外 Gmail 均可)。

2.2 安装 Git 并配置
下载 Git:Git for Windows

安装后,打开 Git Bash,配置全局用户名和邮箱:

bash
# 配置用户名(替换成你的)
git config --global user.name "Your GitHub Username"
# 配置邮箱(替换成你的)
git config --global user.email "Your GitHub Email"


查看配置是否成功:
bash
git config --list

可选的美化配置:
bash
# 开启彩色输出
git config --global color.ui auto
# 配置别名(偷懒必备)
git config --global alias.st status # git st 替代 git status
git config --global alias.br branch # git br 替代 git branch
2.3 SSH 密钥配置(重点)
SSH 比 HTTPS 更安全、更方便,配置后无需每次输入密码。
生成 SSH 密钥
在 Git Bash 中执行:
bash
ssh-keygen -t ed25519 -C "your_email@example.com"
全程按回车,不用输入任何内容。生成后:
- 私钥:
~/.ssh/id_ed25519(绝对不能泄露!) - 公钥:
~/.ssh/id_ed25519.pub(要复制到 GitHub)
启动 SSH 代理并添加私钥
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
复制公钥到 GitHub
bash
# Windows
clip < ~/.ssh/id_ed25519.pub
# Mac
pbcopy < ~/.ssh/id_ed25519.pub
登录 GitHub → 头像 → Settings → SSH and GPG keys → New SSH key,粘贴公钥并保存。
验证是否成功
bash
ssh -T git@github.com
看到 Hi 用户名! You've successfully authenticated 即表示成功。

三、仓库创建与代码提交
3.1 从本地开始:已有项目上传到 GitHub
bash
# 进入项目文件夹
cd your-project
# 初始化 Git 仓库(指定默认分支为 main)
git init --initial-branch=main
# 创建 .gitignore 文件(忽略不需要上传的文件)
touch .gitignore
# 添加所有文件到暂存区
git add .
# 提交到本地仓库
git commit -m "first commit"
# 在 GitHub 新建空仓库(不要勾选初始化选项)
# 关联远程仓库
git remote add origin git@github.com:用户名/仓库名.git
# 推送到 GitHub
git push -u origin main
3.2 从 GitHub 开始:克隆已有仓库
bash
# 克隆仓库到本地
git clone git@github.com:用户名/仓库名.git
# 修改文件后提交
git add 文件名
git commit -m "修改说明"
git push origin main
四、Git 分支管理
4.1 分支的概念
分支让你能在不影响主代码的前提下,独立开发新功能。
可以把主分支(main)想象成一篇论文的终稿,功能分支(feature)就是论文的副本------你在副本上写新章节,写好了再合并回终稿。
4.2 常用分支类型
| 分支类型 | 命名规范 | 用途 |
|---|---|---|
| 主分支 | main/master | 存放稳定、可发布的代码 |
| 开发分支 | develop | 团队日常开发分支 |
| 功能分支 | feature/xxx | 开发单个新功能 |
| Bug修复分支 | bugfix/xxx | 修复开发中的 Bug |
| 紧急修复分支 | hotfix/xxx | 修复线上紧急 Bug |
4.3 分支核心操作
bash
# 查看所有分支
git branch
# 创建并切换到新分支(最常用)
git checkout -b feature/login
# 切换分支
git switch main
# 合并分支(先切到目标分支)
git switch main
git merge feature/login
# 删除已合并的分支
git branch -d feature/login
4.4 合并冲突与解决
冲突产生的原因:两个分支修改了同一文件的同一行代码。
模拟冲突场景
- 创建
calculator.py文件:
python
def add(a, b):
result = a + b
return result
- 在
feature分支修改为含税费的版本 - 在
main分支修改为四舍五入的版本 - 合并时触发冲突
解决冲突
冲突文件会包含标记:
python
<<<<<<< HEAD
result = round(a + b, 2) # main分支的修改
=======
result = (a + b) * 1.1 # feature分支的修改
>>>>>>> feature
解决思路:删除标记,保留需要的代码,合并逻辑:
python
result = round((a + b) * 1.1, 2) # 融合两个功能
保存文件后:
bash
git add calculator.py
git commit -m "解决冲突:合并税费和四舍五入功能"
4.5 分支删除
删除本地分支
bash
# 删除已合并的分支
git branch -d feature/login
# 强制删除未合并的分支(谨慎!)
git branch -D feature/unfinished
删除远程分支
bash
git push origin --delete feature/login
误删恢复
bash
# 查看操作历史,找到最后一次提交的哈希值
git reflog
# 从提交记录恢复分支
git checkout -b feature/login 哈希值
4.6 提交规范
提交信息格式
<类型>: <简短描述>
<详细描述(可选)>
类型说明
| 类型 | 说明 | 示例 |
|---|---|---|
| feat | 新增功能 | feat: 新增用户登录接口 |
| fix | 修复 Bug | fix: 修复密码加密错误 |
| docs | 修改文档 | docs: 更新API文档 |
| style | 代码格式调整 | style: 格式化代码 |
| refactor | 代码重构 | refactor: 简化函数逻辑 |
| test | 添加测试 | test: 添加单元测试 |
| chore | 工具配置修改 | chore: 更新.gitignore |