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