1. Git 核心概念
①. Git4 个工作区及相关概念
工作区:指在本地仓库中的全部代码区域;
暂存区:指在本地仓库中通过 git add 后的代码区域;
本地仓库:指在本地仓库中的 git commit 后的代码区域;
远程仓库:远程仓库指的托管代码的服务器。
📦 仓库 (Repository):就是你的项目文件夹,Git 会在这个文件夹里创建一个隐藏的.git目录,记录所有历史变更。
🌿 分支 (Branch):相当于平行宇宙。你可以在不同的分支上做不同的修改,互不影响。默认分支叫master或main(能用功能名命名分支,不一定只有dev,master,main)。
🌟 常见的推荐分支命名规范
| 前缀 | 用途 | 例子 |
|---|---|---|
feature/ | 新功能 | feature/user-login |
fix/ | Bug 修复 | fix/submit-error |
hotfix/ | 紧急修复 | hotfix/critical-bug |
release/ | 发布版本 | release/v1.2.3 |
refactor/ | 重构 | refactor/api-call |
docs/ | 文档 | docs/readme-update |
chore/ | 杂项 | chore/dependency-update |
test/ | 测试 | test/add-unit-tests |
experiment/ | 实验性 | experiment/new-ui |
分支使用的核心原则
永远不要直接在 master/main 上开发
每个新功能都开一个新分支
经常切换到 dev 拉取最新代码(避免冲突)
合并前确保代码测试通过
📝 提交 (Commit):就像游戏存档。每当你完成一个功能,就提交一次,保存当前状态。以后可以随时回到这个状态。
🔀 合并 (Merge):把两个分支的修改合并到一起。比如你在dev分支开发完了,要合并回main分支。
②. Git安装与配置
git的安装与配置教程-超详细版_git安装及配置教程-CSDN博客
# 设置全局用户名 git config --global user.name "你的名字" # 设置全局邮箱 git config --global user.email "你的邮箱@example.com" # 查看所有配置 git config --list2.常用指令
📋 命令速查表
基本命令
git init:初始化仓库(新项目第一次使用 Git)
git add . :添加所有文件到暂存区(准备提交)
git commit -m "信息":提交到本地仓库
git push:推送到远程仓库(上传代码到 GitHub/Gitee)
git pull:拉取远程更新(同步团队最新代码)
git status:查看当前修改状态
git log --oneline:查看提交历史
分支命令
git branch:查看当前有哪些分支
git branch ... :创建分支
git checkout ... :切换到分支
git checkout -b dev:创建并切换到 dev 分支(开始新功能开发)
git merge ... :合并 ... 分支(开发完成合并到主分支)
git branch -d ... :删除本地...分支
git push origin --delete ...:删除远程...分支
git push origin dev:推送dev到远程
版本回退
git reset --soft:回退到某个版本(保留修改)
git reset --hard:回退到某个版本(丢弃修改)
git reflog+git reset:回到最新版本
修改冲突
git merge --abort:放弃合并,回到冲突前
git checkout --ours:强制保留自己的版本
git checkout --theirs ... :强制保留远程的版本
①拉取代码
第一次拉项目
git clone:将存储库克隆到本地
git clone [url](此处url可以为https或ssh)
需要后续更新
git pull:从远程仓库拉取代码并合并到本地当前分
git pull
git fetch:只拉取远程更新,不合并
git fetch
git merge:命令用于分支合并,将其他分支的内容合并到当前分支中。
git checkout [branchName](切换到要将其他分支合并进来的目标分支)
git merge [branchName]
eg:A --- B --- C (master)
\
D --- E (feature)
执行git checkout master切换到master分支,然后执行git merge feature
A --- B --- C --- D --- E (master)
②上传
第一次上传时
# ===== 进入项目 ===== cd ... # ===== 初始化 ===== git init # 初始化仓库 echo .../ >> . ... # ===== 提交 ===== git add . git commit -m "..." # ===== 关联远程(替换成你的地址)===== git remote add origin 仓库地址 # ===== 推送 ===== git push -u origin master本质就是三步:工作区 → 暂存区 → 本地仓库 → GitHub
git add:将本地文件添加到暂存区,告诉 Git“这些文件我要提交”。
git add 文件名git add .// 添加当前目录下所有文件至暂存区
git commit:将暂存区内容添加到本地仓库中,生成一个“版本记录”
git commit -m 'xxx'// 将暂存区文件添加到本地仓库,并记录下备注(完成首页功能......)
git push:将本地分支推送到远程仓库GitHub等
git push
③修改
# 1. 查看当前修改状态 git status # 2. 添加所有修改到暂存区 git add . # 3. 提交到本地仓库(写清楚改了啥) git commit -m "feat: 新增表单校验功能" # 4. 拉取远程最新代码(防止别人有更新) git pull # 5. 推送到远程仓库 git push⚠️ 如果git pull有冲突怎么办?(场景:别人改了你正在改的文件)
用冲突命令或者直接在VScode里选择。
# 执行 git pull 后报错 # CONFLICT: src/App.vue # 解决步骤: # 1. 打开冲突文件,手动修改(保留需要的代码) # 冲突标记:<<<<<<< HEAD 和 >>>>>>> 之间的内容 # 2. 修改后,重新添加 git add src/App.vue # 3. 提交合并 git commit -m "merge: 解决 App.vue 冲突" # 4. 推送 git push3. Git 提交规范(Conventional Commits)
提交信息格式:<type>(<scope>):<subject>
<Type >类型详解
| Type | 说明 | 使用场景 | 例子 |
|---|---|---|---|
| feat | 新功能 | 新增一个功能 | feat: 新增 TextInput 组件 |
| fix | 修复 Bug | 修复一个 Bug | fix: 修复表单提交失败问题 |
| docs | 文档更新 | 只改文档,不涉及代码 | docs: 更新组件使用文档 |
| style | 代码格式 | 不影响代码逻辑的修改(空格、缩进、分号等) | style: 格式化代码缩进 |
| refactor | 重构 | 代码重构,不新增功能,不修 Bug | refactor: 重构表单校验逻辑 |
| perf | 性能优化 | 提升性能的修改 | perf: 优化列表渲染性能 |
| test | 测试相关 | 新增或修改测试 | test: 新增 TextInput 单元测试 |
| chore | 构建/工具 | 构建工具、依赖更新等 | chore: 升级 Vite 到 6.0 |
| revert | 回滚 | 回滚之前的提交 | revert: 回滚到 v1.0.0 |
| ci | CI 配置 | 持续集成配置修改 | ci: 配置 GitHub Actions |
| build | 构建相关 | 构建系统或外部依赖修改 | build: 更新 webpack 配置 |
常见 <scope>
components- 组件相关
utils- 工具函数
api- 接口相关
styles- 样式相关
config- 配置相关
docs- 文档相关
tests- 测试相关