关于 git-pushing
git-pushing 是用于提交指定更改并推送到远程分支的工作流技能。它采用隔离暂存流程,并将受保护分支和发布任务交由仓库指定流程处理。
主要功能
- 01检查分支状态和仓库策略
- 02隔离暂存指定文件
- 03创建规范格式的提交
- 04推送到已配置的远程端
- 05拒绝不安全的仓库状态
适用场景
- 01提交并推送指定范围的代码更改
- 02在主题分支分享已完成的工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill git-pushing安装后在 Claude Code 中输入/git-pushing确认已加载。
附带文件scripts/smart_commit.sh
详细介绍
Git 推送工作流
仅暂存预期的变更,创建符合约定的提交,并推送到远程分支。
何时使用
当用户出现以下情况时自动激活:
- 明确要求推送变更(“push this”、“commit and push”)
- 提到将工作保存到远程(“save to github”、“push to remote”)
- 完成某项功能并希望分享
- 说出“let's push this up”或“commit these changes”之类的短语
安全门禁
在暂存之前,检查 git status --short --branch,确认预期的文件,并在可能发生并发推送时获取上游分支。不要吸收无关的脏文件。
在选择目标分支之前,先阅读仓库策略。如果 main 或 master 受保护,或者仓库定义了诸如 merge:batch 之类的维护者命令,请创建或使用主题分支,并通过所需的拉取请求检查来完成。用户“push to main”的请求描述的是期望的最终状态;它并不授权绕过服务端保护。在受保护分支被拒绝后,切勿继续重试直接推送。
该辅助工具在暂存任何内容之前,要求活动的索引为空且提交信息符合约定。它会锁定活动索引,在隔离的临时索引中构建并验证提交,拒绝不带路径的 --,并且仅当分支的父提交未改变时才原子性地更新该分支。
该辅助工具依次遵循 branch.<name>.pushRemote、remote.pushDefault 以及分支配置的上游。对于没有这些设置的新分支,它要求存在 origin 并建立 origin/<branch>。它在暂存之前拒绝分离的 HEAD 和无效的远程配置。
不要将此技能用于维护者合并批次、规范化同步、版本化仓库发布、标签发布,或具有显式 merge:batch、release:prepare 或 release:publish 工作流的仓库。请改用该仓库的维护者/发布流程;它负责拉取请求证据、受保护分支检查、生成的文件、标签和发布验证。
工作流
仅在安全门禁通过后使用该辅助工具。解析包含此 SKILL.md 的已安装目录,并将其绝对路径替换到下面的 <skill-directory>;不要假设当前工作目录就是目录仓库。不带路径时,该辅助工具会暂存所有当前变更,因此仅当每个脏文件都属于所请求的提交时才使用该形式:
bash "<skill-directory>/scripts/smart_commit.sh"
使用自定义信息:
bash "<skill-directory>/scripts/smart_commit.sh" "feat: add feature"
若要仅暂存指定的文件,请在 -- 之后传入它们:
bash "<skill-directory>/scripts/smart_commit.sh" "fix: scope change" -- path/to/file
该辅助工具处理隔离暂存、创建提交和推送;它不能替代验证、发布工具,或高级上游分支所需的 rebase。
限制
- 该辅助工具目前要求使用 Git 的
filesref 后端;它在创建提交之前会拒绝reftable仓库,因为其 ref 无法使用文件系统锁协议。 - 仅当任务明确匹配上述范围时才使用此技能。
- 不要将输出视为特定环境验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并寻求澄清。