关于 git-update
用于获取远程更新,并在检查确认安全时对当前分支执行变基的 Git 技能。它会谨慎处理暂存和恢复本地变更,并用一句话报告结果。
主要功能
- 01验证 Git 仓库和工作区状态
- 02获取远程更新
- 03检查分支历史和变基安全性
- 04暂存脏工作区变更并保留暂存状态
- 05操作后恢复本地变更
适用场景
- 01从远程更新干净的分支
- 02保留本地修改并执行变基
- 03历史存在风险时避免变基
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dzhuneyt/ skills --skill git-update安装后在 Claude Code 中输入/git-update确认已加载。
详细介绍
执行以下步骤:
- 检查当前目录是否为有效的 git 仓库
- 从远程拉取最新更改
- 检查工作目录是否干净(没有本地更改)
- 如果干净:分析操作是否安全,并直接使用 rebase 进行拉取(跳过 stash 操作)
- 如果有更改:使用
git stash push --include-untracked --keep-index暂存更改(保留暂存状态) - 分析 rebase 是否安全(通过比较提交历史检查潜在冲突)
- 如果安全:使用 rebase 进行拉取,然后根据需要使用
git stash pop恢复 stash - 如果不安全:中止操作,并根据需要使用
git stash pop恢复 stash,以还原到完全相同的原始状态 - 始终用一句话准确概述操作结果
安全检查:
- 使用
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