用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/entropy-cloud/nop-entropy --skill nop-git-bundle命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | nop-git-bundle |
| description | Git Bundle导出工作流 — 将未推送提交或分支差异打包为.bundle文件,用于离线同步或跨机器传输。触发词:bundle、导出、sync、离线同步。 |
将本地未推送的提交打包为 .bundle 文件,用于离线传输或跨机器同步。
导出bundle / 导出差异 / sync — 将未推送提交打包导出到sync目录 — 批量导出多个项目验证bundle — 检查bundle文件完整性origin/$BRANCH..HEAD 范围 — 只打包未推送的部分git bundle verify 确认文件有效~/sync/ — 统一的bundle存放目录# 0. 环境检测
REPO_DIR=$(pwd)
PROJECT_NAME=$(basename "$REPO_DIR")
CURRENT_BRANCH=$(git branch --show-current)
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
# 1. 检查是否有未推送提交
UNPUSHED=$(git log --oneline "origin/$CURRENT_BRANCH..HEAD" 2>/dev/null)
if [ -z "$UNPUSHED" ]; then
echo "✅ 没有未推送的提交,无需导出"
exit 0
fi
echo "📦 未推送的提交:"
echo "$UNPUSHED"
echo ""
# 2. 创建sync目录
mkdir -p ~/sync
# 3. 创建bundle
BUNDLE_FILE=~/sync/${PROJECT_NAME}-${TIMESTAMP}.bundle
git bundle create "$BUNDLE_FILE" "origin/$CURRENT_BRANCH..HEAD"
# 4. 验证bundle
git bundle verify "$BUNDLE_FILE"
# 5. 输出结果
echo ""
echo "✅ Bundle已创建: $BUNDLE_FILE"
echo "📊 包含 $(echo "$UNPUSHED" | wc -l | tr -d ' ') 个提交"
ls -lh "$BUNDLE_FILE"
# 批量导出所有项目
PROJECTS=(
"$HOME/app/nop-entropy-wt/nop-entropy-master"
"$HOME/app/nop-app-erp"
"$HOME/app/nop-chaos-flux-wt/nop-chaos-flux-master"
"$HOME/app/nop-app-mall-wt/nop-app-mall-master"
)
mkdir -p ~/sync
for PROJECT_DIR in "${PROJECTS[@]}"; do
if [ ! -d "$PROJECT_DIR/.git" ]; then
echo "⚠️ 跳过: $PROJECT_DIR (不是git仓库)"
continue
fi
echo "=== $(basename $PROJECT_DIR) ==="
cd "$PROJECT_DIR"
CURRENT_BRANCH=$(git branch --show-current)
UNPUSHED=$(git log --oneline "origin/$CURRENT_BRANCH..HEAD" 2>/dev/null | wc -l | tr -d ' ')
if [ "$UNPUSHED" = "0" ]; then
echo " ✅ 无未推送提交"
continue
fi
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
BUNDLE_FILE=~/sync/$(basename $PROJECT_DIR)-${TIMESTAMP}.bundle
git bundle create "$BUNDLE_FILE"
git bundle verify
-lh ~/sync/*.bundle 2>/dev/null
# 查看bundle内容
git bundle unbundle <bundle-file> --stdout | git log --oneline
# 应用bundle到本地仓库
cd /path/to/local/repo
git pull <bundle-file> main
# 或者先查看再决定
git bundle unbundle <bundle-file> --stdout | head -20
# 选项1:先提交再导出
git add -A && git commit -m "chore: sync uncommitted changes"
# 选项2:导出为patch
git diff > ~/sync/${PROJECT_NAME}-uncommitted.patch
git ls-files --others --exclude-standard > /tmp/untracked.txt
tar czf ~/sync/${PROJECT_NAME}-untracked.tar.gz -T /tmp/untracked.txt
# 选项3:stash后导出
git stash
git bundle create ...
git stash pop
# 导出所有本地分支
for BRANCH in $(git branch --format='%(refname:short)'); do
git bundle create ~/sync/${PROJECT_NAME}-${BRANCH}.bundle "$BRANCH"
done
origin/$BRANCH..HEAD 范围git bundle verify/tmp/ — 用 ~/sync/ 或 _tmp/git bundle verify)?