AgentSkillsCN

git-commits

git提交撰写指南

SKILL.md
--- frontmatter
name: git-commits
description: Instructions on how to author git commits

Git Commit Best Practices

Commit Message Structure

  1. First Line Guidelines

    • Limit to 50 characters or less
    • Use a gitmoji at the start to indicate commit type
    • Provide a clear, concise summary of the change
    • Capitalize the first letter
    • Do not end with a period
  2. Message Body

    • Leave a blank line after the first line
    • Explain the motivation for the change
    • Describe how the change solves the problem
    • Use bullet points for clarity
    • Wrap lines at 72 characters

Gitmoji Reference

Always start your commit message with an appropriate gitmoji to quickly communicate the commit's purpose:

EmojiCodeDescription
🎨:art:Improve structure / format of the code
⚡️:zap:Improve performance
🔥:fire:Remove code or files
🐛:bug:Fix a bug
🚑️:ambulance:Critical hotfix
:sparkles:Introduce new features
📝:memo:Add or update documentation
🚀:rocket:Deploy stuff
💄:lipstick:Add or update the UI and style files
🎉:tada:Begin a project
:white_check_mark:Add, update, or pass tests
🔒️:lock:Fix security or privacy issues
🔐:closed_lock_with_key:Add or update secrets
🔖:bookmark:Release / Version tags
🚨:rotating_light:Fix compiler / linter warnings
🚧:construction:Work in progress
💚:green_heart:Fix CI Build
⬇️:arrow_down:Downgrade dependencies
⬆️:arrow_up:Upgrade dependencies
📌:pushpin:Pin dependencies to specific versions
👷:construction_worker:Add or update CI build system
📈:chart_with_upwards_trend:Add or update analytics or track code
♻️:recycle:Refactor code
:heavy_plus_sign:Add a dependency
:heavy_minus_sign:Remove a dependency
🔧:wrench:Add or update configuration files
🔨:hammer:Add or update development scripts
🌐:globe_with_meridians:Internationalization and localization
✏️:pencil2:Fix typos
💩:poop:Write bad code that needs to be improved
⏪️:rewind:Revert changes
🔀:twisted_rightwards_arrows:Merge branches
📦️:package:Add or update compiled files or packages
👽️:alien:Update code due to external API changes
🚚:truck:Move or rename resources (e.g.: files, paths, routes)
📄:page_facing_up:Add or update license
💥:boom:Introduce breaking changes
🍱:bento:Add or update assets
♿️:wheelchair:Improve accessibility
💡:bulb:Add or update comments in source code
🍻:beers:Write code drunkenly
💬:speech_balloon:Add or update text and literals
🗃️:card_file_box:Perform database related changes
🔊:loud_sound:Add or update logs
🔇:mute:Remove logs
👥:busts_in_silhouette:Add or update contributor(s)
🚸:children_crossing:Improve user experience / usability
🏗️:building_construction:Make architectural changes
📱:iphone:Work on responsive design
🤡:clown_face:Mock things
🥚:egg:Add or update an easter egg
🙈:see_no_evil:Add or update a .gitignore file
📸:camera_flash:Add or update snapshots
⚗️:alembic:Perform experiments
🔍️:mag:Improve SEO
🏷️:label:Add or update types
🌱:seedling:Add or update seed files
🚩:triangular_flag_on_post:Add, update, or remove feature flags
🥅:goal_net:Catch errors
💫:dizzy:Add or update animations and transitions
🗑️:wastebasket:Deprecate code that needs to be cleaned up
🛂:passport_control:Work on code related to authorization, roles and permissions
🩹:adhesive_bandage:Simple fix for a non-critical issue
🧐:monocle_face:Data exploration/inspection
⚰️:coffin:Remove dead code
🧪:test_tube:Add a failing test
👔:necktie:Add or update business logic
🩺:stethoscope:Add or update healthcheck
🧱:bricks:Infrastructure related changes
🧑‍💻:technologist:Improve developer experience
💸:money_with_wings:Add sponsorships or money related infrastructure
🧵:thread:Add or update code related to multithreading or concurrency
🦺:safety_vest:Add or update code related to validation
✈️:airplane:Improve offline support
🦖:t-rex:Code that adds backwards compatibility

Example Commit Message

code
✨ Add user authentication middleware

- Implement JWT-based authentication
- Create middleware to validate user tokens
- Add error handling for unauthorized requests

Resolves #123

Additional Best Practices

  • Avoid generic messages like "Fix bug" or "Update code"
  • Be specific about the changes and their impact
  • Reference issue numbers when applicable
  • Do not explain HOW the code works in the commit message
  • Focus on explaining WHY the change was made
  • Never add automatic Co-Authored-By or attribution lines