← Workflows

阅读中文版本

Code Format Pre Commit Workflow

Set up a pre-commit hook that automatically formats code before each commit to maintain consistent style across the team.

beginner~15 minformattinggit-hooksworkflow

Objective

Enforce consistent code formatting automatically before any commit is created.

Environment

  • A project with a code formatter installed
  • Git repository with hooks directory
  • Team agreement on formatting rules

Steps

1. Install hook

Create a .git/hooks/pre-commit script that runs the formatter on staged files.

Expected state: A pre-commit hook exists and is executable.

2. Test the hook

Make a formatting violation, stage the file, and attempt to commit.

Expected state: The commit is blocked or the file is auto-formatted.

3. Verify formatting

Check that staged files are formatted correctly after the hook runs.

Expected state: All staged files conform to the formatting rules.

Decision points

Should the hook auto-format or block?

  • Auto-format and commit
  • Block and ask developer to fix

Auto-format for simple cases; block for complex changes that need manual review.

Expected outcome

All commits automatically have formatted code, preventing style inconsistencies from entering the repository.

Verification

Make a commit with unformatted code and confirm the hook reformats it or blocks the commit.

Cleanup

Remove the pre-commit hook if needed with rm .git/hooks/pre-commit.

Automation ensures consistency

Automatic formatting hooks ensure consistency without relying on every developer to remember.

#!/bin/sh
prettier --write $(git diff --cached --name-only --diff-filter=ACM | grep "\.js$")

Implementation Notes

This workflow provides a structured approach to ensure consistent results across team members and environments.

Common Pitfalls

Skipping verification steps or rushing through the process can lead to incomplete results. Always follow each step in order and verify before proceeding.