Install
openclaw skills install @thcjp/git-toolkit-freeopenclaw skills install @thcjp/git-toolkit-freeGit工具包免费版为开发者提供日常版本管理能力。工具涵盖提交管理、分支策略、合并冲突解决、历史检查与恢复操作,帮助开发者高效使用Git进行代码版本管理。
本版本适合日常代码版本管理、功能分支开发和代码合并与冲突解决。所有命令通过Git CLI执行,无需安装额外插件。
使用Git时遵循的安全规则:
--force-with-leasegit pull --rebase 避免不必要的合并提交git rebase -i 压缩修复提交输入: 用户提供核心规则所需的指令和必要参数。 处理: 按照skill规范执行核心规则操作,遵循单一意图原则。 输出: 返回核心规则的执行结果,包含操作状态和输出数据。
# 基础提交
git add file.txt
git add .
git add -A # 包括删除的文件
git commit -m "提交信息"
# 提交消息规范(Conventional Commits)
git commit -m "feat(auth): 添加用户登录功能"
git commit -m "fix(api): 修复用户列表分页错误"
git commit -m "docs(readme): 更新安装说明"
git commit -m "refactor(utils): 重构日期格式化函数"
git commit -m "test(auth): 添加登录单元测试"
git commit -m "chore(deps): 升级依赖版本"
# 修改提交
git commit --amend -m "新提交信息"
git commit --amend --no-edit # 保持原信息
git commit -am "提交信息" # 添加并提交已跟踪文件
# 查看变更
git diff # 工作区变更
git diff --staged # 暂存区变更
git diff file.txt # 特定文件变更
git diff commit1 commit2 # 比较两个提交
输入: 用户提供提交管理所需的指令和必要参数。 处理: 按照skill规范执行提交管理操作,遵循单一意图原则。 输出: 返回提交管理的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作# 查看分支
git branch # 本地分支
git branch -a # 所有分支(含远程)
git branch -vv # 分支跟踪信息
# 创建和切换分支
git branch feature-name # 创建分支
git checkout feature-name # 切换分支(旧命令)
git switch feature-name # 切换分支(新命令)
git checkout -b feature-name # 创建并切换
git switch -c feature-name # 创建并切换(新命令)
# 删除分支
git branch -d branch-name # 安全删除(已合并)
git branch -D branch-name # 强制删除
# 重命名分支
git branch -m old-name new-name # 重命名当前分支
输入: 用户提供分支管理所需的指令和必要参数。 处理: 按照skill规范执行分支管理操作,遵循单一意图原则。 输出: 返回分支管理的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作# 合并分支
git merge feature-name # 合并到当前分支
git merge --no-ff feature-name # 保留合并记录
git merge --abort # 取消合并
# 变基
git rebase main # 将当前分支变基到main
git rebase -i HEAD~3 # 交互式变基最近3个提交
git rebase --continue # 解决冲突后继续
git rebase --abort # 取消变基
git rebase --skip # 跳过当前提交
# 冲突解决
git diff --name-only --diff-filter=U # 查看冲突文件
# 手动编辑冲突文件,解决冲突标记
git add resolved-files # 标记已解决
git commit # 完成合并
# 或
git rebase --continue # 完成变基
# 检查是否还有冲突标记
grep -r "<<<\|>>>\|===" .
输入: 用户提供合并与冲突解决所需的指令和必要参数。 处理: 按照skill规范执行合并与冲突解决操作,遵循单一意图原则。 输出: 返回合并与冲突解决的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作# 查看历史
git log # 完整历史
git log --oneline # 简洁模式
git log --graph --oneline --all # 图形化所有分支
git log -5 # 最近5个提交
git log --author="Name" # 按作者筛选
git log --since="2 weeks ago" # 按时间筛选
git log -- file.txt # 特定文件历史
# 快速摘要
git status -sb # 简短状态
git log --oneline -5 # 最近5个提交
git shortlog -sn # 贡献者统计
git diff --stat HEAD~5 # 最近5个提交统计
# 恢复操作
git reset --soft HEAD~1 # 撤销提交,保留变更
git reset --hard HEAD~1 # 撤销提交,丢弃变更(危险)
git restore file.txt # 丢弃工作区变更
git restore --staged file.txt # 取消暂存
# 查找丢失的提交
git reflog # 操作历史(保留约90天)
git checkout -b branch-name <sha> # 从历史创建分支
输入: 用户提供历史检查与恢复所需的指令和必要参数。 处理: 按照skill规范执行历史检查与恢复操作,遵循单一意图原则。 输出: 返回历史检查与恢复的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:冲突解决与历史恢、复等核心命令、适合开发者日常版、本管理、面向开发者的、版本管理工具包、涵盖提交管理、分支策略、合并冲突解决、核心能力、提交管理与规范、分支管理与切换、基本团队协作工作等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
input_params参数,支持创建/查询/导出操作标准功能分支开发工作流。
#!/bin/bash
# 功能分支工作流
echo "=== 功能分支开发流程 ==="
# 1. 从main创建功能分支
git checkout main
git pull origin main
git checkout -b feature/user-auth
# 2. 开发并提交
git add .
git commit -m "feat(auth): 实现用户认证逻辑"
# 3. 定期同步main
git fetch origin
git rebase origin/main
# 4. 推送到远程
git push -u origin feature/user-auth
# 5. 创建Pull Request(在平台上操作)
# 6. 合并后清理
git checkout main
git pull origin main
git branch -d feature/user-auth
git push origin --delete feature/user-auth
echo "功能分支流程完成"
解决合并冲突的完整流程。
#!/bin/bash
# 冲突解决流程
echo "=== 冲突解决流程 ==="
# 1. 合并时遇到冲突
git merge feature-branch
# CONFLICT (content): Merge conflict in src/index.js
# 2. 查看冲突文件
echo "冲突文件:"
git diff --name-only --diff-filter=U
# 3. 查看冲突内容
echo -e "\n冲突详情:"
git diff
# 4. 手动解决冲突
echo "请手动编辑冲突文件,解决以下标记:"
echo " <<<<<<< HEAD (当前分支)"
echo " ======="
echo " >>>>>>> feature-branch (合并分支)"
# 5. 标记已解决
# git add src/index.js
# 6. 验证无冲突标记
echo -e "\n检查冲突标记:"
if grep -r "<<<\|>>>\|===" . --include="*.js" --include="*.ts"; then
echo "仍有未解决的冲突标记!"
else
echo "冲突标记已清除"
fi
# 7. 完成合并
# git commit
# 或取消合并
# git merge --abort
恢复误删除的分支或提交。
#!/bin/bash
# 误操作恢复
echo "=== 误操作恢复 ==="
# 1. 查看操作历史
echo "最近的Git操作:"
git reflog -20
# 2. 恢复误删除的分支
echo -e "\n恢复误删除的分支:"
echo "1. 找到分支最后的提交SHA:"
git reflog | grep "feature-deleted"
echo "2. 从该SHA创建新分支:"
echo " git checkout -b feature-deleted <sha>"
# 3. 恢复误reset的提交
echo -e "\n恢复误reset的提交:"
echo "1. 查看reset前的提交:"
git reflog | grep "reset"
echo "2. 恢复到该提交:"
echo " git reset --hard <sha>"
# 4. 撤销已推送的提交(安全方式)
echo -e "\n撤销已推送的提交(使用revert):"
echo " git revert <commit-sha>"
echo " git push origin main"
# 设置用户信息
git config --global user.name "你的名字"
git config --global user.email "your@email.com"
# 设置默认分支名
git config --global init.defaultBranch main
# 配置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --graph --oneline --all"
在 AI Agent 中输入:
请帮我创建功能分支,提交代码并推送到远程。
Agent 会自动进行安全检查,避免危险操作。
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
# ~/.gitconfig
[user]
name = 你的名字
email = your@email.com
[init]
defaultBranch = main
[alias]
st = status
co = checkout
br = branch
ci = commit
sw = switch
lg = log --graph --oneline --all
last = log -1 HEAD
amend = commit --amend --no-edit
unstage = reset HEAD --
visual = log --graph --oneline --all
[pull]
rebase = true
[push]
default = current
autoSetupRemote = true
[core]
editor = code --wait
autocrlf = input
# 依赖
node_modules/
__pycache__/
venv/
.venv/
# 构建产物
dist/
build/
*.o
*.so
# 环境变量
.env
.env.local
.env.*.local
# IDE
.vscode/
.idea/
*.swp
*.swo
# 系统
.DS_Store
Thumbs.db
# 日志
*.log
logs/
git status
git diff
git diff --staged
# 使用 -p 选择性暂存
git add -p
--force-with-lease 替代 --force# 推荐
git push --force-with-lease
# 危险(不推荐)
# git push --force
# 格式: type(scope): description
git commit -m "feat(auth): 添加OAuth2登录支持"
git commit -m "fix(api): 修复用户列表500错误
详细说明:
- 修复了空指针异常
- 添加了参数校验
- 增加了错误处理"
# 安全检查清单
git branch # 确认当前分支
git status # 确认无未提交变更
git stash list # 确认无暂存内容
# 撤销提交,保留变更在工作区
git reset --soft HEAD~1
# 撤销提交,变更回到未暂存状态
git reset HEAD~1
# 撤销提交,丢弃所有变更(危险!)
git reset --hard HEAD~1
# 安全方式:使用revert(不会改写历史)
git revert <commit-sha>
git push origin main
# 不安全方式:amend(会改写历史,仅限未共享分支)
git commit --amend -m "新信息"
git push --force-with-lease
git status 查看冲突文件<<<<<<<、=======、>>>>>>> 标记git add <file> 标记已解决git commit 完成合并| 能力维度 | 免费版 | 专业版 |
|---|---|---|
| 工作流 | 基础工作流 | 高级团队工作流 |
| 自动化 | 手动执行 | CI/CD集成 |
| 批量操作 | 不支持 | 批量分支管理 |
| 代码审查 | 手动 | 自动化审查 |
| 钩子管理 | 不支持 | Git Hook管理 |
| 历史分析 | 基础log | 高级分析 |
# git checkout(旧命令,功能多)
git checkout branch-name # 切换分支
git checkout -b new-branch # 创建并切换
git checkout -- file.txt # 丢弃变更
# git switch(新命令,专用于分支)
git switch branch-name # 切换分支
git switch -c new-branch # 创建并切换
# git restore(新命令,专用于恢复)
git restore file.txt # 丢弃变更
git restore --staged file.txt # 取消暂存
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Git | 运行时 | 必需 | git-scm.com 下载 |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
# HTTPS认证
git config --global credential.helper store
# SSH密钥认证
ssh-keygen -t ed25519 -C "your@email.com"
# 将公钥添加到Git托管平台