一、Git 核心概述

1. 定位与目标

  • 分布式版本控制工具,解决4大开发痛点:备份、代码还原、协同开发、追溯提交记录

  • 核心优势:无需联网工作(本地完整版本库)、高速、支持非线性开发(多分支)、适配超大型项目(如Linux内核)

2. 与集中式工具(SVN/CVS)的区别

类型 核心特点 依赖网络 代表工具
集中式 版本库存中央服务器 必须联网 SVN、CVS
分布式 每人电脑都是完整版本库 无需联网 Git

3. 起源

  • 2005年由Linus Torvalds开发,用于解决Linux内核开发的版本管理问题

二、安装与环境配置

1. 安装

2. 必做配置(用户身份)

1
2
3
4
5
6
# 设置用户名和邮箱(每次提交会关联该信息)
git config --global user.name "用户名"
git config --global user.email "邮箱"
# 查看配置
git config --global user.name
git config --global user.email

3. 优化配置(可选)

  • 别名配置(简化命令):

    1. 创建 .bashrc 文件:touch ~/.bashrc

    2. 写入别名:

      1
      2
      alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' # 精简日志
      alias ll='ls -al' # 查看目录详情
    3. 生效:source ~/.bashrc

  • 乱码解决:

    1
    2
    3
    4
    git config --global core.quotepath false
    # 编辑 git 安装目录下的 etc/bash.bashrc,添加:
    export LANG="zh_CN.UTF-8"
    export LC_ALL="zh_CN.UTF-8"

三、本地仓库核心操作

1. 工作流程

工作区(编写代码)→ 暂存区(add)→ 本地仓库(commit)

2. 关键命令

操作 命令 说明
初始化本地仓库 git init 在空目录执行,生成隐藏 .git 目录
查看文件状态 git status 显示工作区/暂存区变更(未跟踪/已暂存)
工作区→暂存区 git add 文件名 / git add . . 表示所有变更文件
暂存区→本地仓库 git commit -m "提交注释" 注释必须清晰(如:“feat: 添加登录功能”)
查看提交日志 git-log(别名)/ git log [选项] 选项:–all(所有分支)、–graph(图形化)
版本回退 git reset --hard 提交ID 提交ID通过 git-loggit reflog 获取(reflog可看已删除记录)
忽略文件配置 创建 .gitignore 文件 写入忽略规则(如 *.logbuild/

四、分支操作(核心功能)

1. 分支意义

隔离开发(新功能、Bug修复),不影响主线开发

2. 常用命令

操作 命令 说明
查看本地分支 git branch 星号标注当前分支
创建分支 git branch 分支名 基于当前分支创建新分支
创建并切换分支 git checkout -b 分支名 等价于「创建+切换」两步
切换分支 git checkout 分支名 切换前需提交本地变更
合并分支 git merge 待合并分支名 在目标分支(如master)执行
删除分支 git branch -d 分支名 / git branch -D 分支名 -d 需先合并,-D 强制删除

3. 冲突解决

当两个分支修改同一文件同一行时触发:

  1. 打开冲突文件,删除冲突标记(<<<<<<< ======= >>>>>>>

  2. 编辑为期望的内容

  3. 执行 git add .(标记冲突已解决)

  4. 执行 git commit -m "解决冲突"

4. 分支规范(开发必备)

  • master:生产分支,线上运行代码,禁止直接修改

  • develop:开发主分支,从master创建,开发完成后合并到master

  • feature/xxx:功能分支,从develop创建,完成后合并回develop

  • hotfix/xxx:紧急修复分支,从master创建,修复后合并到master+develop

五、远程仓库操作(协同开发)

1. 常用托管平台

2. 前置配置(SSH免密登录)

1

3. 核心命令

操作 命令 说明
关联远程仓库 git remote add origin 远程仓库地址 origin为默认远程仓库名
查看远程仓库 git remote 显示关联的远程仓库名
本地→远程推送 git push --set-upstream origin 分支名 首次推送需关联分支,后续可简化为 git push
远程→本地克隆 git clone 远程仓库地址 [本地目录] 本地目录可选,自动生成仓库目录
远程→本地拉取(合并) git pull origin 分支名 等价于 git fetch + git merge,自动合并
远程→本地抓取(不合并) git fetch origin 分支名 仅下载更新,不合并到工作区

4. 协同冲突解决

  1. 推送前先拉取:git pull(获取远程最新代码)

  2. 若触发冲突,按「本地分支冲突解决」步骤处理

  3. 解决后重新推送:git push

六、IDEA 集成 Git(实操)

1. 配置Git路径

  • File → Settings → Version Control → Git → 选择Git安装目录下的 bin/git.exe → Test验证

2. 核心操作入口

操作 入口/快捷键
初始化本地仓库 VCS → Import into Version Control → Create Git Repository
提交本地变更 Ctrl+K(Commit)→ 勾选文件+写注释 → Commit
推送到远程 Ctrl+Shift+K(Push)→ 选择分支 → Push
克隆远程仓库 Checkout from Version Control → Git → 输入远程地址 → Clone
分支操作 右下角「Git: 分支名」→ New Branch/Switch Branch
拉取远程更新 Ctrl+T(Update Project)→ 选择Pull
解决冲突 冲突文件标红 → 打开编辑 → 右键 → Add to VCS → Commit

3. 关键注意事项

  • 切换分支前必须提交本地变更

  • 推送代码前先拉取,避免冲突

  • 不要手动删除 .git 目录,否则版本记录丢失

附:核心命令速查

场景 命令组合
新项目初始化 git initgit add .git commit -m "init"git remote add origin 地址git push
参与已有项目 git clone 地址git checkout 开发分支 → 开发 → git add .git commitgit pullgit push
版本回退 git-log(查提交ID)→ git reset --hard 提交ID
分支开发流程 git checkout -b feature/xxx → 开发 → git commitgit checkout developgit merge feature/xxx

(注:文档部分内容可能由 AI 生成)