一、Git 概述
1. 什么是 Git
Git 是分布式版本控制系统,用于跟踪代码修改、保存版本快照、实现多人协同开发。
2. 集中式 vs 分布式
- SVN(集中式):只有服务器存完整版本,断网无法提交
- Git(分布式) :每个人本地都有完整仓库,断网也可本地提交,安全性更高、速度更快
3. 三大核心操作
commit:本地保存版本push:本地 → 远程pull:远程 → 本地
4. 主流代码托管平台
- Gitee(码云):国内速度快、稳定、免费仓库多(推荐)
- GitHub:全球开源社区
- GitLab:企业私有化部署
二、Git 环境配置
1. 首次安装必须配置(身份标识)
bash
git config --global user.name "用户名"
git config --global user.email "邮箱"
# 查看配置
git config --global --list
作用:每次提交记录都会标记作者,不需要和 Gitee/GitHub 账号一致
2. 保存账号密码(免重复登录)
bash
git config --global credential.helper store
三、Git 仓库两种创建方式
1. 本地初始化新项目
bash
git init
生成隐藏 .git 文件夹,代表本地仓库创建成功
2. 克隆远程已有项目(工作最常用)
bash
git clone 远程仓库地址
四、核心原理:Git 三区(必考)
三区结构
- 工作区:我们写代码的文件夹
- 暂存区(Stage):临时存放即将提交的修改
- 本地仓库 :
.git目录,永久保存所有版本快照
完整流转流程
工作区 → add → 暂存区 → commit → 本地仓库 → push → 远程仓库
文件四种状态
untracked:未跟踪(新增文件)modified:已修改未暂存staged:已暂存待提交unmodified:已托管无修改
五、本地仓库全套命令
1. 查看状态
bash
git status
- 添加到暂存区
bash
git add 文件名
git add . # 所有文件全部暂存
- 提交本地仓库
bash
git commit -m "提交备注信息"
- 查看日志
bash
git log
git log --oneline # 简洁版日志
- 撤销操作(高频易错
bash
# 暂存区撤销 → 回到工作区
git reset HEAD 文件名
# 版本回退(谨慎使用)
git reset --hard 版本号
六、远程仓库操作完整版
1. 查看远程仓库
bash
git remote
git remote -v
- 关联远程仓库
bash
git remote add origin 远程地址
- 推送代码
bash
git push origin 分支名
- 拉取代码
bash
git pull origin 分支名
5. 常见报错解决
报错:fatal: refusing to merge unrelated histories
两个仓库历史不一致,无法合并
bash
git pull origin master --allow-unrelated-histories
七、分支管理(团队协作核心)
1. 分支概念
master/main:主分支,只放稳定上线代码dev/feature:开发分支、功能分支
2. 全套分支命令
bash
# 查看分支
git branch
git branch -a # 查看所有本地+远程分支
# 创建分支
git branch 分支名
# 切换分支
git checkout 分支名
# 创建并切换(最常用)
git checkout -b 分支名
# 合并分支
# 1.先切到主分支
git checkout master
# 2.合并开发分支
git merge dev
# 删除分支
git branch -d 分支名
八、分支冲突详解(工作必会)
1. 冲突产生条件
两个分支修改了同一文件的同一行代码,Git 无法自动合并 → 冲突
2. 冲突解决步骤
- 打开冲突文件,删除冲突标记
- 保留最终正确代码
git add .git commit -m "解决分支冲突"
原则:冲突必须人工解决,Git 不会自动覆盖代码
九、标签 Tag(版本发布)
标签用于标记项目版本(v1.0 /v2.0)
bash
git tag # 查看标签
git tag v1.0 # 创建标签
git push origin v1.0 # 推送标签到远程
十、IDEA 集成 Git 完整流程
1. 配置 Git
设置 → Version Control → Git → 选择 git.exe 路径
2. 日常开发流程
- 修改代码
- Commit(提交本地仓库)
- Push(推送远程)
- 更新代码:Pull
3. IDEA 冲突可视化解决
- Accept Yours:保留本地
- Accept Theirs:保留远程
- Merge:手动合并
十一、高频面试题总结
1. 三区执行流程?
工作区修改 → add 暂存 → commit 本地仓库 → push 远程仓库
2. clone 和 pull 区别?
- clone:第一次下载整个项目
- pull:项目已存在,更新最新代码
3. 什么时候产生冲突?
多人修改同一文件同一行代码,合并时冲突
4. merge 流程?
切换到主分支 → merge 开发分支
5. Git 分布式优势?
本地完整版本、断网可提交、安全性高、速度快
十二、Git 命令速查表(收藏版)
bash
# 本地
git init
git add .
git commit -m ""
git log
# 远程
git clone
git remote add
git push
git pull
# 分支
git branch
git checkout
git checkout -b
git merge
# 撤销回退
git reset