一、Git 简介
Git 是一个免费、开源、分布式的版本控制系统,由 Linus Torvalds 开发,主要用于跟踪文件内容的变更,便于团队协作开发。
Git 的核心作用:
-
记录代码修改历史
-
支持多版本切换
-
高效合并多人提交的代码
-
支持分支管理,便于功能开发与 Bug 修复
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。Git 是当前最流行的分布式版本控制系统。
Git 与集中式版本控制(如 SVN)的区别:
| 特性 | Git(分布式) | SVN(集中式) |
|---|---|---|
| 仓库存储 | 每个开发者都有完整的仓库副本 | 只有中央服务器有完整仓库 |
| 网络需求 | 提交、分支操作可离线进行 | 大多数操作需要网络连接 |
| 分支管理 | 轻量级分支,创建/切换快速 | 分支较重量级,创建较慢 |
| 安全性 | 每个副本都是完整备份 | 单点故障风险 |
二、Git 安装与配置
1. 安装 Git
-
Windows :下载 Git for Windows 安装包,默认安装即可。
-
Mac :下载
.dmg安装包安装,或使用brew install git。 -
Linux :使用包管理器安装,如
sudo apt install git。
2. 验证安装
bash
git --version
3. 配置用户信息
bash
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
完整:
bash
# 用户身份配置(必须)
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱@example.com"
# 开启颜色显示
git config --global color.ui auto
# 设置默认编辑器
git config --global core.editor "code --wait" # VSCode
# 配置行结束符(跨平台协作)
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # Linux/Mac
三、Git 核心概念
1. 三个区域
-
工作区:你正在编辑的文件目录
-
暂存区:临时存放将要提交的更改
-
版本库:存放所有提交的历史记录
| 区域 | 作用 | 对应文件/目录 |
|---|---|---|
| 工作区 (Working Directory) | 实际操作的文件目录 | 项目文件夹中的所有文件 |
| 暂存区 (Staging Area) | 临时存放要提交的更改 | .git/index 文件 |
| 版本库 (Repository) | 存储所有提交的历史记录 | .git/objects/ 目录 |
2. 文件状态
-
未跟踪(U):新文件,未被 Git 管理
-
已跟踪:
-
新添加(A):第一次被暂存
-
未修改(''):三个区域一致
-
已修改(M):工作区内容有变动
-
| 状态 | 缩写 | 描述 | 常见场景 |
|---|---|---|---|
| 未跟踪 | U | 文件未被 Git 管理 | 新创建的文件 |
| 已暂存 | A | 文件已添加到暂存区 | 第一次 git add 后 |
| 未修改 | '' | 工作区与版本库一致 | 提交后状态 |
| 已修改 | M | 工作区文件有变动 | 编辑已跟踪文件后 |
四、Git 常用命令
1.基础操作
| 命令 | 说明 |
|---|---|
git init |
初始化本地 Git 仓库 |
git add . |
将所有修改添加到暂存区 |
git commit -m "注释" |
提交到版本库 |
git status |
查看文件状态 |
git status -s |
简略状态显示 |
git log --oneline |
查看简洁提交历史 |
2.版本回退
bash
git reset --hard <版本号> # 彻底回退到指定版本
git reset --soft <版本号> # 回退版本但保留工作区和暂存区
git reflog --oneline # 查看所有操作记录(包括回退)
3.分支管理
| 命令 | 说明 |
|---|---|
git branch <分支名> |
创建分支 |
git checkout <分支名> |
切换分支 |
git checkout -b <分支名> |
创建并切换分支 |
git merge <分支名> |
合并分支到当前分支 |
git branch -d <分支名> |
删除已合并的分支 |
bash
# 查看所有分支
git branch # 本地分支
git branch -r # 远程分支
git branch -a # 所有分支
# 创建分支
git branch [分支名]
# 切换分支
git checkout [分支名]
# 创建并切换分支
git checkout -b [分支名]
# 删除分支
git branch -d [分支名] # 安全删除(已合并)
git branch -D [分支名] # 强制删除(未合并)
3.远程仓库操作(以 Gitee 为例)
| 命令 | 说明 |
|---|---|
git remote add origin <仓库地址> |
关联远程仓库 |
git push -u origin master |
首次推送并建立追踪 |
git push |
后续推送 |
git pull origin master |
拉取远程更新 |
git clone <仓库地址> |
克隆远程仓库到本地 |
五、Git 高级用法与场景
1. 忽略文件:.gitignore
用于忽略不需要版本控制的文件,如:
bash
node_modules/
dist/
*.log
.vscode/
2. 合并冲突
当多个分支修改同一文件的同一部分时,会发生冲突。解决方法:
-
手动编辑冲突文件
-
使用
git add标记已解决 -
提交合并结果
六、协同开发流程
典型流程:
-
克隆远程仓库:
git clone <url> -
创建功能分支:
git checkout -b feature-A -
开发并提交:
git add .→git commit -m "..." -
推送分支:
git push origin feature-A -
提交 Pull Request / Merge Request
-
合并后删除分支:
git branch -d feature-A
七、在 PyCharm 中使用 Git
配置步骤:
-
安装 Gitee 插件
-
配置 Git 路径:
Settings → Version Control → Git -
登录 Gitee 账号:
Settings → Version Control → Gitee -
使用图形化界面进行提交、推送、拉取等操作
八、常见 Git 工作流
-
集中式工作流:所有人直接推送到主分支
-
功能分支工作流:每个功能一个分支,合并到主分支
-
Git Flow :包含
master、develop、feature、release、hotfix分支