git-snapshot-rollback

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Git Snapshot & Rollback

Git Snapshot & Rollback

此技能通过自动化脚本确保在回退 Git 提交时,不仅保留了当前的尝试(Snapshot),还通过
ARCHIVE.md
构建了一个可追溯的决策链表。
This skill ensures that when rolling back Git commits, not only are current attempts (Snapshot) retained, but also a traceable decision chain is built through
ARCHIVE.md
via automated scripts.

核心工作流

Core Workflow

1. 确认回退目标

1. Confirm Rollback Target

  • 获取用户想要回退到的目标 Commit Hash。
  • 询问或总结回退的具体原因(Reason)。
  • Obtain the target Commit Hash that the user wants to roll back to.
  • Ask or summarize the specific reason for the rollback.

2. 执行自动化回退脚本

2. Execute Automated Rollback Script

  • 在执行前,必须询问用户是否需要将存档分支推送到远端仓库。
  • 使用
    run_shell_command
    调用技能内置脚本:
    • 如果用户同意推送:
      python3 <path_to_skill>/scripts/rollback.py <Target_Commit> "<Reason>" --push
    • 如果用户不同意推送(默认):
      python3 <path_to_skill>/scripts/rollback.py <Target_Commit> "<Reason>"
  • 脚本将自动完成
    1. Commit 当前所有未提交的变更。
    2. 创建
      archive/{current_branch}/YYYY-MM-DD-HH-mm
      分支。
    3. 更新存档分支的
      ARCHIVE.md
      记录。
    4. (可选) 将存档分支推送到远端。
    5. 回到原分支并执行
      git reset --hard
    6. 在原分支更新
      ARCHIVE.md
      并提交回退记录。
    7. 列出当前所有领先于远程(未推送)的分支。
  • Before execution, you must ask the user whether to push the archive branch to the remote repository.
  • Use
    run_shell_command
    to call the skill's built-in script:
    • If the user agrees to push:
      python3 <path_to_skill>/scripts/rollback.py <Target_Commit> "<Reason>" --push
    • If the user disagrees with pushing (default):
      python3 <path_to_skill>/scripts/rollback.py <Target_Commit> "<Reason>"
  • The script will automatically complete the following:
    1. Commit all uncommitted changes.
    2. Create the
      archive/{current_branch}/YYYY-MM-DD-HH-mm
      branch.
    3. Update the
      ARCHIVE.md
      record in the archive branch.
    4. (Optional) Push the archive branch to the remote.
    5. Return to the original branch and execute
      git reset --hard
      .
    6. Update
      ARCHIVE.md
      in the original branch and commit the rollback record.
    7. List all branches that are currently ahead of the remote (unpushed).

3. 结果验证

3. Result Verification

  • 检查
    ARCHIVE.md
    是否已正确记录了本次回退的双向链接。
  • 确认当前分支已处于目标 Commit 状态。
  • Check whether
    ARCHIVE.md
    has correctly recorded the bidirectional links for this rollback.
  • Confirm that the current branch is in the target Commit state.

记录规范

Recording Specifications

  • 关于
    ARCHIVE.md
    的具体格式,请参考 references/log-format.md
  • 每次回退的 Commit Message 必须包含来源存档分支的信息。
  • For the specific format of
    ARCHIVE.md
    , please refer to references/log-format.md.
  • The Commit Message for each rollback must include information about the source archive branch.

使用禁令

Usage Prohibitions

  • 严禁在没有使用此技能的情况下直接执行
    git reset --hard
    来放弃大量工作。
  • 不得修改或删除
    ARCHIVE.md
    中的历史记录。
  • It is strictly forbidden to directly execute
    git reset --hard
    to discard a large amount of work without using this skill.
  • Do not modify or delete historical records in
    ARCHIVE.md
    .