mcpField
G
git-update

git-update

github.com/dzhuneyt开发062 次安装3 周前更新
代码仓库

关于 git-update

用于获取远程更新,并在检查确认安全时对当前分支执行变基的 Git 技能。它会谨慎处理暂存和恢复本地变更,并用一句话报告结果。

主要功能

  1. 01验证 Git 仓库和工作区状态
  2. 02获取远程更新
  3. 03检查分支历史和变基安全性
  4. 04暂存脏工作区变更并保留暂存状态
  5. 05操作后恢复本地变更

适用场景

  1. 01从远程更新干净的分支
  2. 02保留本地修改并执行变基
  3. 03历史存在风险时避免变基

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dzhuneyt/skills --skill git-update

安装后在 Claude Code 中输入/git-update确认已加载。

详细介绍

执行以下步骤:

  1. 检查当前目录是否为有效的 git 仓库
  2. 从远程拉取最新更改
  3. 检查工作目录是否干净(没有本地更改)
  4. 如果干净:分析操作是否安全,并直接使用 rebase 进行拉取(跳过 stash 操作)
  5. 如果有更改:使用 git stash push --include-untracked --keep-index 暂存更改(保留暂存状态)
  6. 分析 rebase 是否安全(通过比较提交历史检查潜在冲突)
  7. 如果安全:使用 rebase 进行拉取,然后根据需要使用 git stash pop 恢复 stash
  8. 如果不安全:中止操作,并根据需要使用 git stash pop 恢复 stash,以还原到完全相同的原始状态
  9. 始终用一句话准确概述操作结果

安全检查:

  • 使用 git rev-parse --is-inside-work-tree 验证 git 仓库
  • 检查是否存在可能导致冲突的分叉提交历史
  • 检查远程是否执行了强制推送(这会给 rebase 带来风险)
  • 验证当前分支是否可以安全地执行 rebase
  • 使用 git status --porcelain 高效检查本地更改
  • 仅在工作目录有更改时才执行 stash 和恢复操作

Stash 安全规则:

  • 使用 git stash push --include-untracked --keep-index 保留暂存状态
  • 始终使用 git stash pop 恢复,绝不使用 git stash apply
  • 如果 git stash pop 因冲突失败,使用 git reset --hard 和 git stash apply,然后解决冲突
  • 确保在中止操作时,将文件还原到完全相同的原始状态(已暂存文件仍保持暂存状态,未暂存文件仍保持未暂存状态)
  • 如果 stash 失败,或恢复可能导致数据丢失,则绝不继续操作

规则:

  • 在 stash 操作期间保持文件状态(已暂存/未暂存)完全不变
  • 仅在冲突概率较低时才继续执行 rebase
  • 中止操作时始终恢复原始状态
  • 最后准确输出一句话概述
  • 绝不允许数据丢失

评论

支持 Markdown