DK学习手册

我的 Git 分支管理实践

读完 Pro Git 后整理出的一套个人工作流。不是最佳实践,是这几年踩坑后觉得用得最顺手的方式。

分支命名约定

所有功能分支前加类型前缀,方便检索和归档:

feat/user-profile-edit
fix/login-token-expire
refactor/extract-config-loader
docs/setup-guide-v2

前缀只用四种:feat / fix / refactor / docs。chore 之类的我都归到 refactor,太多前缀反而记不住。

rebase 还是 merge

本地分支和别人无关 → 拉主干用 rebase,让 commit 历史是直线。已经 push 上去的分支跟人协作过 → 老实 merge。原则其实只有一条:不要 rebase 别人也在用的分支

我自己的常规流程:

# 工作前同步主干
git fetch origin
git rebase origin/main

# 工作中频繁 commit
git commit -m "wip: ..."

# 提 PR 前整理 commit 历史
git rebase -i origin/main

交互式 rebase 把 wip 们 squash 到一起,再写一条规范的提交信息。

提交信息

写得啰嗦还是简洁取决于读者。被自己将来读 → 写清楚 why;被同事 review → 标题就够。我个人套 Conventional Commits 但不严格,只保留最有用的几个 type:

feat: 新功能
fix: bug 修复
refactor: 不改外部行为的重构
docs: 文档
test: 测试代码

不写 chore / style / perf 这些,因为它们大都能归到上面四个里。

本地 hook 防误提交

.git/hooks/pre-commit 加一条防止误提密钥的检查:

#!/bin/sh
if git diff --cached | grep -E "(api[_-]?key|secret|password|token)\s*=\s*['\"][^'\"]{10,}" ; then
    echo "可能的密钥泄漏,请检查"
    exit 1
fi

简单粗暴,误报偶尔有,但拦住过两次 .env 误提,值得。

小结

工作流没有标准答案,每个人能稳定执行的就是好工作流。重要的是有意识,而不是命令熟练。

← 返回首页