Git使用完全指南
一、Git是什么?
Git是一个分布式版本控制系统(DVCS),由Linus Torvalds于2005年开发。核心特点:
- 记录文件变化历史
 - 支持多人协作开发
 - 本地完整版本库存储
 - 强大的分支管理能力
 
二、Git基本理论
1. 三个核心区域
- 工作区(Working Directory)
 - 暂存区(Staging Area)
 - 版本库(Repository)
 
2.工作流流程图
3. 文件状态周期
未跟踪 → 已跟踪(未修改 → 已修改 → 已暂存 → 已提交)
功能开发甘特图
4.多人协作序列图
三、Git基本命令速查
| 命令 | 作用 | 示例 | 
|---|---|---|
git init | 初始化仓库 | git init | 
git clone | 克隆远程仓库 | git clone https://github.com/user/repo.git | 
git add | 添加文件到暂存区 | git add . | 
git commit | 提交到版本库 | git commit -m "feat: add login feature" | 
git status | 查看状态 | git status -s | 
git log | 查看提交历史 | git log --oneline --graph | 
git diff | 查看差异 | git diff HEAD~1 | 
git push | 推送远程 | git push origin main | 
git pull | 拉取更新 | git pull --rebase | 
git branch | 分支管理 | git branch -a | 
git checkout | 切换分支 | git checkout -b feature/login | 
git merge | 合并分支 | git merge dev | 
git reset | 版本回退 | git reset --soft HEAD~1 | 
git stash | 暂存修改 | git stash pop | 
四、Git提交规范(Angular规范)
1.提交类型流程图
推荐格式:<type>(<scope>): <subject>
feat(login): add social login feature
fix(payment): handle currency conversion error
 
2.常用type类型:
业界通用的Git提交规范:
():
-  
type
- 作用 
- 用于说明 Git Commit 的类别,只允许使用下面的标识。
标识- sync:同步主线或分支的bug。
 - merge:代码合并。
 - revert:回滚到上一个版本。
 - chore:构建过程或辅助工具的变动。
 - test:增加测试。
 - perf:优化相关,比如提升性能、体验。
 - refactor:重构(既不是新增功能,也不是修改bug的代码变动)。
 - style:格式(不影响代码运行的变动)。
 - docs:文档(documentation)。
 - fix / to:修复bug,可以是QA(Quality Assurance)发现的bug,也可以是研发自己发现的bug。
 - feat:新功能(feature)。
 
 
 - 用于说明 Git Commit 的类别,只允许使用下面的标识。
 
 - 作用 
 -  
scope
-  
作用
-  
scope用于说明 Commit 影响的范围,比如数据层、控制层、视图层等,视项目不同而不同。
 -  
例子
 -  
在JAVA,可以是Controller,Service,Dao等。
在Angular,可以是location,browser,compile,compile,rootScope, ngHref,ngClick,ngView等。 -  
如果你的修改影响了不止一个scope,你可以使用*代替。
 -  
subject
 -  
作用
- subject是 Commit 目的的简短描述,一般不超过50个字符。
 
 
 -  
 
注意事项
建议使用中文。
结尾不加句号或其他标点符号。 -  
 
五、Git分支管理
1. 主流分支类型
- master/main:生产环境分支
 - develop:开发主分支
 - feature/*:功能开发分支
 - hotfix/*:紧急修复分支
 - release/*:预发布分支
 
2. 分支操作流程
# 创建新功能分支
git checkout -b feature/search# 开发完成后合并到develop
git checkout develop
git merge --no-ff feature/search# 删除已合并分支
git branch -d feature/search
 
六、重点扩展内容
1. .gitignore文件
# 忽略所有.class文件
*.class# 不忽略lib目录下的.class
!lib/*.class# 忽略node_modules目录
node_modules/
 
2. 配置别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
 
3. 冲突解决流程
git pull发现冲突- 手动编辑冲突文件(搜索
<<<<<<<标记) git add标记冲突已解决git commit完成合并
七、重点总结
- 理解工作区/暂存区/版本库的递进关系
 - 掌握
add-commit-push核心工作流 - 遵循规范的提交消息格式
 - 采用合理的分支管理策略
 - 善用
.gitignore管理忽略文件 - 定期
git pull保持代码同步 - 合并前先解决本地冲突
 
八、注意事项
- 危险操作三原则: 
- 不要强制推送(
--force)到公共分支 - 谨慎使用
reset --hard - 删除分支前确认已合并
 
 - 不要强制推送(
 - 提交前必须检查: 
git status查看文件状态git diff确认修改内容- 确保不提交敏感信息(密码/密钥)
 
 - 分支管理建议: 
- 功能分支命名清晰(feature/xxx)
 - 及时清理已合并分支
 - 保持主分支的稳定性
 
 - 协作开发技巧: 
- 使用
git fetch + merge代替直接pull - 推荐
--rebase保持提交线整洁 - 定期同步远程仓库
 
 - 使用
 
