Git 核心知识
一、Git 核心概述
1. 定位与目标
-
分布式版本控制工具,解决4大开发痛点:备份、代码还原、协同开发、追溯提交记录
-
核心优势:无需联网工作(本地完整版本库)、高速、支持非线性开发(多分支)、适配超大型项目(如Linux内核)
2. 与集中式工具(SVN/CVS)的区别
| 类型 | 核心特点 | 依赖网络 | 代表工具 |
|---|---|---|---|
| 集中式 | 版本库存中央服务器 | 必须联网 | SVN、CVS |
| 分布式 | 每人电脑都是完整版本库 | 无需联网 | Git |
3. 起源
- 2005年由Linus Torvalds开发,用于解决Linux内核开发的版本管理问题
二、安装与环境配置
1. 安装
-
验证:右键出现「Git GUI Here」「Git Bash Here」即为成功
2. 必做配置(用户身份)
1 | # 设置用户名和邮箱(每次提交会关联该信息) |
3. 优化配置(可选)
-
别名配置(简化命令):
-
创建
.bashrc文件:touch ~/.bashrc -
写入别名:
1
2alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' # 精简日志
alias ll='ls -al' # 查看目录详情 -
生效:
source ~/.bashrc
-
-
乱码解决:
1
2
3
4git 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-log 或 git reflog 获取(reflog可看已删除记录) |
| 忽略文件配置 | 创建 .gitignore 文件 |
写入忽略规则(如 *.log、build/) |
四、分支操作(核心功能)
1. 分支意义
隔离开发(新功能、Bug修复),不影响主线开发
2. 常用命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看本地分支 | git branch |
星号标注当前分支 |
| 创建分支 | git branch 分支名 |
基于当前分支创建新分支 |
| 创建并切换分支 | git checkout -b 分支名 |
等价于「创建+切换」两步 |
| 切换分支 | git checkout 分支名 |
切换前需提交本地变更 |
| 合并分支 | git merge 待合并分支名 |
在目标分支(如master)执行 |
| 删除分支 | git branch -d 分支名 / git branch -D 分支名 |
-d 需先合并,-D 强制删除 |
3. 冲突解决
当两个分支修改同一文件同一行时触发:
-
打开冲突文件,删除冲突标记(
<<<<<<<=======>>>>>>>) -
编辑为期望的内容
-
执行
git add .(标记冲突已解决) -
执行
git commit -m "解决冲突"
4. 分支规范(开发必备)
-
master:生产分支,线上运行代码,禁止直接修改 -
develop:开发主分支,从master创建,开发完成后合并到master -
feature/xxx:功能分支,从develop创建,完成后合并回develop -
hotfix/xxx:紧急修复分支,从master创建,修复后合并到master+develop
五、远程仓库操作(协同开发)
1. 常用托管平台
-
GitHub:https://github.com/(国外,开源项目首选)
-
码云(Gitee):https://gitee.com/(国内,速度快)
-
GitLab:https://about.gitlab.com/(企业内部私服)
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. 协同冲突解决
-
推送前先拉取:
git pull(获取远程最新代码) -
若触发冲突,按「本地分支冲突解决」步骤处理
-
解决后重新推送:
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 init → git add . → git commit -m "init" → git remote add origin 地址 → git push |
| 参与已有项目 | git clone 地址 → git checkout 开发分支 → 开发 → git add . → git commit → git pull → git push |
| 版本回退 | git-log(查提交ID)→ git reset --hard 提交ID |
| 分支开发流程 | git checkout -b feature/xxx → 开发 → git commit → git checkout develop → git merge feature/xxx |
(注:文档部分内容可能由 AI 生成)
