Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Git 最佳实践

下面是一份 真正实用、生产级的 Git 最佳实践大全,涵盖团队协作、分支、Commit、Tag、版本管理、安全、CI/CD 场景等。

⭐ 1. 分支管理最佳实践

✅ 推荐分支模型(适合 90% 的团队)

main        -> 生产分支(稳定)
develop     -> 开发主分支(可选)
feature/*   -> 功能分支
hotfix/*    -> 生产级紧急修复
release/*   -> 发版前合并分支

简化版(适合小团队):

main
feature/*
hotfix/*

✅ 规则

  • main 永远保持可发布状态
  • 开发人员不允许直接推送到 main
  • 所有代码必须走 Pull Request / Merge Request
  • feature/ 完成后只能合并回 main 或 develop(由流程决定)*
  • hotfix/ 优先合并回 main 和 develop*

⭐ 2. Commit 最佳实践

Commit 规范(强烈推荐)

使用 Conventional Commits:

feat: 新增用户搜索功能
fix: 修复登录失败的问题
docs: 更新安装文档
style: 调整代码格式,未修改逻辑
refactor: 重构用户模块
test: 新增接口单测
chore: 更新依赖
perf: 优化 SQL 查询速度

好处:

  • 自动生成 CHANGELOG
  • 自动生成版本号(语义化版本)
  • 更容易 code review
  • CI/CD 自动识别是否需要发版

⭐ 3. Tag / Release 最佳实践

语义化版本号(Semantic Versioning)

MAJOR.MINOR.PATCH
1.4.23

规则:

  • MAJOR:重大破坏更新
  • MINOR:新功能(向下兼容)
  • PATCH:Bug 修复

生产环境必须打 Tag

git tag -a v1.2.0 -m "Release v1.2.0"
git push origin v1.2.0

⭐ 4. Merge Request 最佳实践

必须 Review(至少一人)

Review 内容:

  • 是否有 unit test
  • 是否破坏 backward compatibility
  • 是否满足 coding style
  • 是否有安全风险
  • 是否有必要拆分 commit

禁止直接 merge main 的规则

推荐使用 GitLab/Github 的保护策略:

  • 禁止 force push
  • 禁止直接 push
  • 必须通过 CI 检查

⭐ 5. Git 配置最佳实践

全局配置放在 ~/.gitconfig

项目配置放在 .git/config

推荐的全局配置

git config --global pull.rebase false
git config --global rebase.autoStash true
git config --global core.autocrlf input
git config --global merge.ff false
git config --global fetch.prune true

禁止把 Token 写入 URL

使用:

  • SSH key
  • credential helper 指定文件
  • CI/CD variables

⭐ 6. Git Ignore 最佳实践

项目根目录添加 .gitignore:

venv/
node_modules/
*.log
*.pyc
dist/
.env

⭐ 7. Rebase vs Merge 最佳实践

使用 merge 的场景

  • 代码合入主分支
  • 保留完整历史记录

使用 rebase 的场景

  • 本地 feature 分支整理 commit
  • 避免出现过多 merge commit

推荐流程

git checkout feature/login
git fetch
git rebase origin/main
fix conflicts...
git push --force-with-lease

⭐ 8. 高级 Git 最佳实践(生产踩坑总结)

8.1 永远不要使用 git push –force

使用:

git push --force-with-lease

避免覆盖别人提交。

8.2 提交前必须执行

git diff
git status

8.3 永远不要在 main 上做本地开发

8.4 如果 Token 泄漏,第一时间执行

git filter-repo --replace-text ...
git push --force

⭐ 9. 大文件处理最佳实践

如果必须提交大文件:

  • 使用 Git LFS
  • 或者提交 OSS/MinIO 地址

⭐ 10. Git Hooks 最佳实践

使用 pre-commit:

pre-commit install

添加:

  • 自动格式化
  • 自动检查黑名单词语
  • 自动运行单测
  • 禁止调试代码(print、console.log)

⭐ 11. CI/CD 中的 Git 最佳实践

克隆仓库必须加:

git fetch --depth=1

减少时间。

CI/CD 不要使用全局 credential helper

使用环境变量:

GIT_USERNAME
GIT_PASSWORD

⭐ 12. 常用 Git 命令最佳实践版

查看修改历史

git log --oneline --graph --decorate --all

回退到某个版本(保留修改)

git reset --soft HEAD~1

回退(丢弃修改)

git reset --hard HEAD~1

检查是谁改了这行代码

git blame file.py

⭐ 13. Git 安全最佳实践

禁止上传密码与 token

添加 .gitignore:

*.env
*.pem
config.json

避免使用明文密码

优先顺序:

  1. SSH key
  2. CI/CD Credential Variables
  3. 临时 credential helper 文件