git-commit-and-push.md 4.1 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.

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.

3. Present Command List for User Review

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

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

  3. 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