git-commit-and-push.md 5.3 KB

Automate the Git commit and push process by intelligently analyzing file changes, generating semantic commit messages with file paths, and providing an interactive command execution workflow. The workflow opens a new terminal, checks Git status, analyzes changes to create descriptive commit messages, lists commands for user review, and executes Git operations step by step with user confirmation.

Git Commit and Push Process - Detailed Sequence of Steps

1. Open New Terminal and Check Git Status

  1. Use the execute_command tool to open a new terminal session.

  2. Use the execute_command tool to execute git status to check current repository state.

    • Identify modified files
    • Identify new (untracked) files
    • Identify deleted files
    • Display current branch information
  3. Analyze the output to understand the scope of changes in the current working directory. you should ignore dev.ts file.

2. Analyze File Changes and Generate Commit Message

  1. For each changed file identified in git status:

    • Use the read_file tool to examine the content of modified files if needed for context
    • Analyze the type of changes (new features, bug fixes, documentation, refactoring, etc.)
  2. Based on the file changes and any user-provided context information:

    • Generate a semantic commit message following conventional commit format
    • Include the file paths of changed files in the commit message
    • Examples:
      • feat: add new workflow creation process in .clinerules/workflows/create-new-workflow.md
      • fix: resolve authentication issue in src/API/security/userActions.ts
      • docs: update README.md with installation instructions
  3. Ensure the commit message is descriptive and includes relevant file paths for clarity.

  4. Ensure the commit message contains modified files which are changed or new added files . the commit message should be in Chinese . the files list locates below the commit message and contribute to the commit messsage. Examplse : `feat: 实现曝光模式切换功能并集成设备API下发

    • 在 APRActions.ts 中导出 setExposureModeFromAction API
    • 在 aprSlice.ts 中添加 setExposureModeThunk 异步thunk和状态处理
    • 在 ParaSettingCoordinator 中实现 setExposureMode 方法和MQTT事件监听
    • 在 mqttServiceForDevice.ts 中添加NEW_EXPOSURE_MODE事件触发
    • 更新三个UI组件使用受控组件模式,确保只在设备确认后才更新显示
    • 利用React受控组件特性实现优雅的API-first更新流程

    改动文件:

    • src/API/exam/APRActions.ts
    • src/states/exam/aprSlice.ts
    • src/domain/exam/paraSettingCoordinator.ts
    • src/domain/mqttServiceForDevice.ts
    • src/pages/exam/ContentAreaLarge.tsx
    • src/pages/exam/ContentAreaMedium.tsx
    • src/pages/exam/ContentAreaSmall.tsx `
  5. when analyzing modified files , ignore the dev.ts file unless the user tell to include the file . This is really important.

    3. Present Command List for User Review

  6. Generate the complete list of Git commands to be executed:

    git add .
    git commit -m "generated commit message with file paths"
    git push
    
  7. Display the command list clearly to the user for review and confirmation.

  8. Show the generated commit message prominently so the user can verify its accuracy.

4. Interactive Command Execution Confirmation

  1. Use the ask_followup_question tool to ask the user for confirmation with clickable options:

    • Question: "是否要开始执行Git命令?"
    • Options: ["开始执行命令", "修改提交信息", "取消操作"]
  2. Handle user response:

    • If "开始执行命令": Proceed to step 5
    • If "修改提交信息": Ask user for new commit message and update commands
    • If "取消操作": Stop the workflow

5. Execute Git Commands Step by Step

  1. Execute git add .

    • Use the execute_command tool to run git add .
    • Display the result and confirm success
    • Wait for command completion before proceeding
  2. Execute git commit

    • Use the execute_command tool to run git commit -m "final commit message"
    • Use the standard git commit command (ignore any git aliases)
    • Display the commit result including commit hash
    • Confirm the commit was successful
  3. Execute git push

    • Use the execute_command tool to run git push
    • Display the push result
    • Confirm files were successfully pushed to remote repository
  4. Final Confirmation

    • Use the attempt_completion tool to present the final results
    • Include summary of:
      • Files that were committed
      • The final commit message used
      • Confirmation that changes were pushed to remote repository

Error Handling

  • If any git command fails, display the error message clearly
  • Provide suggested solutions for common git errors
  • Allow user to retry or modify the approach based on the error

Notes

  • Always use standard git commands (git commit -m) and ignore user-defined git aliases
  • Ensure commit messages are informative and include file paths for better tracking
  • The workflow assumes the current working directory is already a git repository
  • Each command execution should be confirmed successful before proceeding to the next step