本文最后更新于 42 天前,其中的信息可能已经有所发展或是发生改变。
💡 核心价值:
- 代码版本精准控制
- 团队协作无缝衔接
- 灾难恢复从容应对
- 开发流程规范管理
✨ 你将掌握:
- 20+核心操作命令
- GitFlow工作流
- 企业级最佳实践
- 复杂场景解决方案
🚀 一、基础配置与高频操作
1.1 全局配置(首次使用必做)
# 配置用户信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 生成SSH密钥(GitHub/GitLab连接)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 常用别名设置(.gitconfig)
[alias]
st = status
co = checkout
br = branch
ci = commit
df = diff
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
1.2 日常开发四部曲
# 场景:开发新功能
git checkout -b feature/login # 创建并切换分支
git add . # 添加修改
git commit -m "feat: 实现用户登录界面" # 语义化提交
git push -u origin feature/login # 推送分支
# 意外处理:撤销未提交的修改
git restore . # 撤销所有工作区修改
git restore --staged file.js # 撤销暂存区指定文件
🌿 二、分支管理策略
2.1 GitFlow标准工作流
# 主分支(长期存在)
main - 生产环境代码(保护分支)
develop - 集成测试分支
# 辅助分支(临时分支)
feature/* - 功能开发分支
release/* - 预发布分支
hotfix/* - 紧急修复分支
2.2 分支合并实战
# 合并分支(推荐)
git checkout develop
git merge --no-ff feature/login # 保留合并记录
# 变基操作(整理提交历史)
git checkout feature/login
git rebase develop # 将develop最新代码合并到当前分支
git rebase -i HEAD~3 # 交互式合并最近3个提交
# 冲突解决流程
<<<<<<< HEAD
当前分支内容
=======
合并分支内容
>>>>>>> branch-name
# 手动修改后执行:
git add .
git rebase --continue
🔧 三、高阶操作技巧
3.1 时光机操作
# 查看历史记录
git log --oneline --graph
# 回退到指定版本
git reset --hard HEAD~2 # 回退两个提交
git reset --soft HEAD@{1} # 撤销reset操作
# 找回误删提交
git reflog # 查看所有操作记录
git cherry-pick <commit-hash> # 复制指定提交到当前分支
3.2 提交规范与Hooks
# 提交信息规范(Angular规范)
feat: 添加新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试用例
chore: 构建配置修改
# Git钩子示例(.git/hooks/pre-commit)
#!/bin/sh
npm run lint # 提交前执行代码检查
🛠️ 四、企业级解决方案
4.1 多仓库协作
# 添加远程仓库
git remote add upstream https://github.com/org/repo.git
# 同步主仓库更新
git fetch upstream
git rebase upstream/main
# 强制覆盖本地分支
git reset --hard upstream/main
4.2 CI/CD集成示例
# GitHub Actions配置
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
- run: npm install
- run: npm run build
🚨 五、常见问题排雷
5.1 紧急故障处理
场景 | 解决方案 |
---|---|
提交了敏感信息 | git filter-branch 清除历史 |
误删未提交代码 | git fsck --lost-found 找回 |
提交到错误分支 | git stash + cherry-pick |
5.2 大型仓库优化
# 仓库瘦身(删除历史大文件)
git filter-branch --force --index-filter
"git rm --cached --ignore-unmatch PATH_TO_FILE"
--prune-empty --tag-name-filter cat -- --all
# 浅克隆加速
git clone --depth 1 https://github.com/org/repo.git
🔗 推荐资源:
📦 效率工具:
bashCopy Code# 图形化工具
brew install gitkraken # Mac
winget install GitKraken # Windows