返回顶部
G

GitGit 版本控制

Git commits, branches, rebases, merges, conflict resolution, history recovery, team workflows, and the commands needed for safe day-to-day version control. Use when (1) the task touches Git, a repository, commits, branches, merges, rebases, or pull requests; (2) history safety, collaboration, or recovery matter; (3) the agent should automatically apply Git discipline instead of improvising.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.8
安全检测
已通过
11,596
下载量
免费
免费
26
收藏
概述
安装方式
版本历史

Git

何时使用

当任务涉及 Git 仓库、分支、提交、合并、变基、拉取请求、冲突解决、历史检查或恢复时使用。此技能为无状态技能,只要工作涉及 Git 操作,默认应使用本技能。

快速参考

主题文件
基础命令commands.md
高级操作
advanced.md | | 分支策略 | branching.md | | 冲突解决 | conflicts.md | | 历史与恢复 | history.md | | 团队工作流 | collaboration.md |

核心规则

  1. 1. 切勿强制推送到共享分支 — 仅在功能分支上使用 --force-with-lease
  2. 尽早提交,频繁提交 — 小提交更易于审查、回退和二分查找
  3. 编写有意义的提交信息 — 第一行不超过72个字符,使用祈使语气
  4. 推送前先拉取 — 推送前始终执行 git pull --rebase,避免产生合并提交
  5. 合并前清理 — 使用 git rebase -i 压缩修复提交

团队工作流

功能分支流程:

  1. 1. 从主分支创建:git checkout -b feature/name
  2. 进行提交,定期推送
  3. 发起PR,获取审查
  4. 压缩合并到主分支
  5. 删除功能分支

热修复流程:

  1. 1. 从主分支创建:git checkout -b hotfix/issue
  2. 修复、测试、提交
  3. 合并到主分支 AND 开发分支(如存在)
  4. 标记发布版本

每日同步:
bash
git fetch --all --prune
git rebase origin/main # 或根据团队偏好使用合并

提交信息

  • - 使用常规提交格式:type(scope): description
  • 第一行不超过72个字符
  • 类型:feat、fix、docs、style、refactor、test、chore

推送安全

  • - 使用 git push --force-with-lease 替代 --force — 防止覆盖他人工作
  • 若推送被拒绝,先执行 git pull --rebase 再重试
  • 切勿强制推送到 main/master 分支

冲突解决

  • - 编辑冲突文件后,确认无残留标记:grep -r <<<\|>>>\|=== .
  • 完成合并前测试代码能否构建
  • 若合并变得复杂,使用 git merge --abort 中止,尝试改用 git rebase

分支卫生

  • - 本地删除已合并分支:git branch -d branch-name
  • 清理远程跟踪:git fetch --prune
  • 创建PR前,将功能分支变基到最新主分支
  • 推送前使用 git rebase -i 压缩杂乱的提交

安全检查清单

执行破坏性操作前(reset --hard、rebase、force push):

  • - [ ] 这是共享分支吗?→ 不要重写历史
  • [ ] 我有未提交的更改吗?→ 先暂存或提交
  • [ ] 我在正确的分支上吗?→ 用 git branch 确认
  • [ ] 远程仓库是最新的吗?→ 先执行 git fetch

常见陷阱

  • - git user.email 错误 — 重要提交前用 git config user.email 确认
  • 空目录 — Git 不跟踪它们,添加 .gitkeep
  • 子模块 — 始终使用 --recurse-submodules 克隆
  • 分离头指针 — 使用 git switch - 返回之前分支
  • 推送被拒绝 — 通常需要先执行 git pull --rebase
  • stash pop 冲突 — 暂存内容消失。改用 stash apply
  • 大文件 — 超过50MB的文件使用 Git LFS,切勿提交密钥
  • 大小写敏感 — Mac/Windows 忽略大小写,Linux 不忽略 — 导致 CI 失败

恢复命令

  • - 撤销上次提交但保留更改:git reset --soft HEAD~1
  • 丢弃未暂存的更改:git restore filename
  • 查找丢失的提交:git reflog(保留约90天历史)
  • 恢复已删除分支:git checkout -b branch-name <来自reflog的sha>
  • 提交混合了多个更改时,使用 git add -p 进行部分暂存

使用二分查找调试

找到引入错误的提交:
bash
git bisect start
git bisect bad # 当前提交有问题
git bisect good v1.0.0 # 此版本正常

Git 检出中间提交,测试它,然后:


git bisect good # 或 git bisect bad

重复直到 Git 找到罪魁祸首


git bisect reset # 返回原始分支

快速总结

bash
git status -sb # 带分支的简短状态
git log --oneline -5 # 最近5次提交
git shortlog -sn # 按提交次数排序的贡献者
git diff --stat HEAD~5 # 最近5次提交的更改摘要
git branch -vv # 带跟踪信息的分支
git stash list # 待处理的暂存

相关技能

如果用户确认,使用 clawhub install 安装:

  • - gitlab — GitLab CI/CD 和合并请求
  • docker — 容器化工作流
  • code — 代码质量和最佳实践

反馈

  • - 如果觉得有用:clawhub star git
  • 保持更新:clawhub sync

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 git-1776332722 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 git-1776332722 技能

通过命令行安装

skillhub install git-1776332722

下载

⬇ 下载 Git v1.0.8(免费)

文件大小: 9.05 KB | 发布时间: 2026-4-17 16:21

v1.0.8 最新 2026-4-17 16:21
Simplified the skill name and kept the stateless activation guidance

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部