关于 git-workflow
git-workflow 为常见 Git 操作提供分步骤指导,适合需要规范处理代码评审与仓库维护的开发者。内容覆盖 PR 准备、分支清理、冲突处理和发布前检查。
主要功能
- 01整理提交与差异以准备 PR
- 02安全清理已合并分支
- 03指导合并或变基解决冲突
- 04规范单仓库中的发布标签
- 05初始化仓库前配置 .gitignore
- 06检查私有仓库的许可信息
适用场景
- 01根据分支提交和差异撰写 PR
- 02清理已合并的本地分支
- 03处理 PR 与主分支间的冲突
- 04发布单仓库中的特定包版本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jezweb/ claude-skills --skill git-workflow安装后在 Claude Code 中输入/git-workflow确认已加载。
详细介绍
Git 工作流
适用于常见 Git 操作的引导式工作流,通过结构化步骤提高效率。
PR 准备
准备拉取请求时:
-
收集背景信息
git log main..HEAD --oneline— 列出分支上的所有提交git diff main...HEAD --stat— 查看所有更改的文件git status— 检查是否有未提交的工作
-
起草 PR 内容
- 标题:不超过 70 个字符,描述所做更改(而非分支名称)
- 正文:概述“原因”,列出关键更改,并添加测试计划
- 根据提交历史撰写摘要——不要依赖记忆
-
推送并创建
git push -u origin HEAD gh pr create --title "..." --body "$(cat <<'EOF' ## Summary - ... ## Test plan - [ ] ... 🤖 Generated with [Claude Code](https://claude.com/claude-code) EOF )" -
验证 — 使用
gh pr view --web在浏览器中打开
分支清理
安全清理已合并的分支:
-
切换到 main 并拉取最新更改
git checkout main && git pull -
列出已合并的分支(不包括 main/master/develop)
git branch --merged main | grep -vE '^\*|main|master|develop' -
删除本地已合并的分支
git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d -
清理远程跟踪引用
git fetch --prune -
列出没有本地跟踪分支的远程分支(可选)
git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD'
合并冲突解决
PR 存在冲突时:
-
评估冲突范围
git fetch origin git merge origin/main --no-commit --no-ff git diff --name-only --diff-filter=U # List conflicted files -
对于每个冲突文件,阅读文件并解决冲突:
- 如果更改位于不同区域,则保留双方的更改
- 如果架构上不兼容,则优先采用主分支的方案,并在此基础上重新应用 PR 的意图
-
如果变基更简洁(提交较少且没有共享历史):
git rebase origin/main # Resolve conflicts per commit, then: git rebase --continue -
如果变基过程复杂(冲突较多、架构存在分歧):
- 中止:
git rebase --abort或git merge --abort - 提取有用的代码:
git show origin/branch:path/to/file > /tmp/extracted.txt - 手动将更改应用到 main
- 说明原因并关闭原 PR
- 中止:
-
验证 — 运行测试,检查差异是否正确
Monorepo 发布标签
在 Monorepo 中,将标签限定到对应的软件包:
# ❌ Ambiguous in monorepos
git tag v2.1.0
# ✅ Scoped to package
git tag contextbricks-v2.1.0
git push origin contextbricks-v2.1.0
格式:{package-name}-v{semver}
先创建 .gitignore 再初始化
创建新仓库时,务必在首次 git add 之前创建 .gitignore:
cat > .gitignore << 'EOF'
node_modules/
.wrangler/
dist/
.dev.vars
*.log
.DS_Store
.env
.env.local
EOF
git init && git add . && git commit -m "Initial commit"
如果 node_modules 已被跟踪:
git rm -r --cached node_modules/
git commit -m "Remove node_modules from tracking"
私有仓库许可证审查
发布或分享私有仓库之前:
gh repo view --json visibility -q '.visibility'
如果是 PRIVATE,请确保:
LICENSE包含专有权声明(而非 MIT/Apache)package.json中有"license": "UNLICENSED"和"private": true- README 中没有
CONTRIBUTING.md或“欢迎贡献”相关内容
评论
支持 Markdown