Token导航 LogoToken导航TokenDH.com
待分类需要联网github未标认证来源可访问许可证需确认审计通过

git-submodulegit 子模块

Agent Skill

git-submodule 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,983

周安装

81

GitHub Stars

11

下载量

635
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:git-submodule(git 子模块)
来源仓库:https://github.com/akillness/oh-my-skills
仓库路径:skills/git-submodule
安装命令:
npx skills add https://github.com/akillness/oh-my-skills --skill git-submodule
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/akillness/oh-my-skills --skill git-submodule

简介

用于决定子模块是否适合作为代码边界,并提供安全的操作流程。

  • 适合选择操作模式、保持提交锁定状态并处理指针更新等关键操作。
  • 使用时需先阅读决策矩阵,明确 pinned-commit 和 detached HEAD 的影响。
  • 涉及 CI 集成时应参考自动化部署指南,确保子模块状态可追溯。
  • git-submodule 属于待分类类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Git Submodule

Use this skill as the repository's Git submodule choice and operator-workflow anchor.

The job is not to dump every git submodule command in one blob. The job is to:

  1. decide whether submodule is the right boundary at all,
  2. choose one operating mode,
  3. keep pinned-commit, detached-HEAD, and hosted-platform consequences explicit,
  4. emit the next safe commands only for that mode.

Read references/decision-matrix.md first. Read references/update-and-detached-head.md when the request involves pointer updates, detached HEAD, or editing inside the submodule. Read references/ci-and-automation.md for CI/bootstrap expectations. Read references/mode-packets-and-hosted-constraints.md for mode-specific command packets and GitHub Pages / URL-drift constraints.

If the user mainly needs:

  • local branch/history cleanup, rebase, conflict recovery, or push safety → use git-workflow
  • Node package delivery from Git refs, tarballs, workspaces, or publish-first flows → use npm-git-install
  • repo bootstrap/task-runner automation beyond submodule mechanics → use workflow-automation
  • broader environment or container setup → use system-environment-setup

When to use this skill

  • Add an external repository to a project via git submodule add
  • Clone or initialize a repository that already contains submodules
  • Sync a submodule back to the commit recorded by the superproject
  • Advance a submodule to a tracked remote branch and commit the new pointer
  • Work inside a submodule without getting surprised by detached HEAD
  • Remove a submodule cleanly
  • Configure GitHub Actions or other CI to fetch submodules, including private ones
  • Check hosted-platform constraints such as GitHub Pages public-submodule limits
  • Decide whether submodule vs subtree vs vendoring vs package delivery is the better fit

When not to use this skill

  • The main problem is ordinary Git collaboration, rebasing, or history repair
  • The dependency should really be a package-manager / registry artifact
  • The task is broader repo bootstrap automation rather than submodule mechanics
  • The request is hosted repo administration outside submodule checkout / visibility constraints
  • The user wants a giant Git tutorial instead of the next safe move for one submodule situation

Instructions

Step 1: Normalize the request

Capture the request in this form first:

submodule_intake:
  current_goal: decide-boundary | add | bootstrap | sync-to-pinned-commit | advance-tracked-branch | edit-inside-submodule | remove | ci-checkout | hosted-constraint | unknown
  repo_role: superproject-consumer | submodule-maintainer | both | unknown
  dependency_shape: external-repo | vendor-copy | subtree-candidate | package-candidate | unknown
  submodule_state: absent | present-uninitialized | present-detached-head | present-on-branch | pointer-needs-update | unknown
  update_intent: none | match-recorded-commit | move-to-new-upstream-commit | develop-and-push-submodule | unknown
  ci_context: none | github-actions | other-ci | github-pages | unknown
  auth_context: public | private-ssh | private-token | unknown
  collaboration_risk: solo | shared | unknown
  confidence: high | medium | low

If context is incomplete, make the safest default explicit.

Step 2: Decide whether submodule is the right tool

Answer these before giving commands:

  • Do we need a separate upstream Git history inside this repo?
  • Is exact commit pinning the real requirement?
  • Can the team tolerate recursive clone/bootstrap and CI checkout setup?
  • Is the dependency more like a subtree, a vendored snapshot, or a published package instead?

If the answer is "not really", route away instead of forcing submodules.

Step 3: Choose exactly one primary mode

Pick one primary mode for the current run:

  1. boundary decision
  2. add-and-pin
  3. bootstrap-and-clone
  4. sync-to-pinned-commit
  5. advance-tracked-branch
  6. edit-inside-submodule
  7. remove-and-cleanup
  8. ci-checkout
  9. hosted-constraint

Use hosted-constraint when the user is blocked by platform rules such as GitHub Pages public-only submodules or stale submodule URL forms, rather than by ordinary local Git usage.

Step 4: Keep the operator invariants visible

These truths should survive every answer:

  • A superproject records a submodule by commit, not by "latest branch".
  • git submodule update usually restores the recorded commit and may leave the submodule in detached HEAD.
  • .gitmodules is part of the contract; branch-tracking intent belongs there when update --remote is expected.
  • A submodule commit is not reflected in the superproject until the submodule path is staged and committed there.
  • Recursive bootstrap belongs in onboarding and automation docs if the repo depends on submodules.
  • Hosted platforms may add visibility, URL, or auth constraints that normal local Git use does not reveal.

Step 5: Build the submodule brief

Return this exact structure:

# Git Submodule Brief

## Recommended mode
- Mode: boundary decision | add-and-pin | bootstrap-and-clone | sync-to-pinned-commit | advance-tracked-branch | edit-inside-submodule | remove-and-cleanup | ci-checkout | hosted-constraint
- Why this mode fits: ...

## Current state
- Superproject goal: ...
- Submodule state: ...
- Auth / CI / hosted context: ...
- Collaboration risk: solo | shared | unknown
- Confidence: high | medium | low

## Safest next move
1. ...
2. ...
3. ...

## Commands

...


## Watch-outs

- ...
- ...

## Pointer / branch consequences

- ...

## Adjacent handoff

- `git-workflow` when...
- `npm-git-install` when...
- `workflow-automation` when...

Step 6: Use the mode packets, not a giant improvised command dump

Pull the exact packet from references/mode-packets-and-hosted-constraints.md.

Rules:

  • boundary decision should compare submodule with subtree / vendoring / package delivery directly.
  • bootstrap-and-clone and sync-to-pinned-commit must preserve the difference between restore recorded state and upgrade pointer.
  • advance-tracked-branch must make branch intent explicit and commit the resulting pointer update in the superproject.
  • edit-inside-submodule must avoid detached-HEAD commit loss.
  • ci-checkout must make private-submodule auth explicit.
  • hosted-constraint must call out public-only or URL-form restrictions instead of pretending hosted builds will authenticate like a local clone.

Output format

Return a short operator-style Git Submodule Brief.

Required qualities:

  • pick one workflow mode
  • say whether submodule is actually the right tool
  • make detached-HEAD / pointer consequences explicit
  • include CI/auth or hosted-platform notes when relevant
  • route away cleanly when the problem belongs to another skill

Examples

Example 1: bootstrap after clone

Input: "I cloned the repo and the vendor directory is empty. There's a .gitmodules file." Output: choose bootstrap-and-clone, recommend git submodule update --init --recursive, explain that this restores the pinned contents rather than upgrading anything, and mention private-auth caveats if applicable.

Example 2: update a tracked dependency

Input: "We track the main branch of a docs repo as a submodule and want the latest commit." Output: choose advance-tracked-branch, set or confirm submodule.<name>.branch, run git submodule update --remote <path>, then commit the pointer update in the superproject.

Example 3: choose boundary

Input: "Should this shared component repo be a submodule or subtree?" Output: choose boundary decision, compare separate-history/pinning needs against clone simplicity, and route to subtree if consumers should not deal with recursive bootstrap.

Example 4: hosted-platform constraint

Input: "Our GitHub Pages build uses a private docs-theme submodule and keeps failing." Output: choose hosted-constraint, explain the public-https:// GitHub Pages limitation, and route away from a private-submodule Pages design instead of pretending auth fixes it.

Best practices

  1. Start with the boundary decision, not the command list.
  2. Distinguish match pinned commit from advance upstream pointer.
  3. Treat detached HEAD as normal-but-important operator state, not as a mysterious Git bug.
  4. Keep submodule mechanics separate from generic Git history repair.
  5. Make CI checkout, hosted-platform limits, and auth part of the main workflow whenever submodules are involved.

References

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.97%
按下载量换算228

Claude

29.42%
按下载量换算187

Cursor

18.55%
按下载量换算118

Gemini CLI

9.08%
按下载量换算58

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills