Git 超全零基础教程|三区原理、全套命令、分支协作、冲突解决、IDEA 集成(面试必备)

一、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 三区(必考)

三区结构

  1. 工作区:我们写代码的文件夹
  2. 暂存区(Stage):临时存放即将提交的修改
  3. 本地仓库.git 目录,永久保存所有版本快照

完整流转流程

工作区 → add → 暂存区 → commit → 本地仓库 → push → 远程仓库

文件四种状态

  • untracked:未跟踪(新增文件)
  • modified:已修改未暂存
  • staged:已暂存待提交
  • unmodified:已托管无修改

五、本地仓库全套命令

1. 查看状态

bash 复制代码
git status
  1. 添加到暂存区
bash 复制代码
git add 文件名
git add .      # 所有文件全部暂存
  1. 提交本地仓库
bash 复制代码
git commit -m "提交备注信息"
  1. 查看日志
bash 复制代码
git log
git log --oneline   # 简洁版日志
  1. 撤销操作(高频易错
bash 复制代码
# 暂存区撤销 → 回到工作区
git reset HEAD 文件名

# 版本回退(谨慎使用)
git reset --hard 版本号

六、远程仓库操作完整版

1. 查看远程仓库

bash 复制代码
git remote
git remote -v
  1. 关联远程仓库
bash 复制代码
git remote add origin 远程地址
  1. 推送代码
bash 复制代码
git push origin 分支名
  1. 拉取代码
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. 冲突解决步骤

  1. 打开冲突文件,删除冲突标记
  2. 保留最终正确代码
  3. git add .
  4. 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. 日常开发流程

  1. 修改代码
  2. Commit(提交本地仓库)
  3. Push(推送远程)
  4. 更新代码: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
相关推荐
qyyyyy5701 小时前
PDF 转 JSON 怎么做?从表格和元数据提取到 LLM 结构化处理
数据库·pdf·json·erlang·llama
Molesidy1 小时前
【Embedded Development】基于VSCode+IAR插件的IAR工程开发环境的搭建
ide·vscode·编辑器
云和数据.ChenGuang1 小时前
git revert回退问题
java·服务器·人工智能·git·fastapi·强化学习
TunerT_TQ1 小时前
IBM |css-gridish 源码分析:4 个 JavaScript 文件背后的 CSS Grid 可视化工具
开源·github·资讯
TunerT_TQ2 小时前
Hugging Face| Candle 源码分析:702 个文件背后的 Rust 深度学习框架架构
开源·github·资讯
逛逛GitHub2 小时前
用下这 3 个 GitHub 上的超精简 Skill,内容只有几句话,却很好用。
github
MicrosoftReactor2 小时前
GitHub Copilot App 入门指南:自动化处理 Dependabot 拉取请求分类
ai·自动化·github·copilot·pull request
伞伞悦读2 小时前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda
逛逛GitHub3 小时前
一周没逛 GitHub 不要紧,这 TOP 10 的热门开源项目整理好了。
github