git-notes - Linux


git-notes is a Git command for managing arbitrary annotations associated with commits, objects, and references. Notes are useful for attaching additional metadata to your source code, which can be queried and used by other tools.


git notes <command> [<options>] <object> [<options>]


Global Options:

  • -f, --force: Force the update or deletion of annotated objects.
  • -n, --no-replace: Don’t replace existing notes; fail if the object already has notes attached.

Commonly Used Options:

  • add: Add a note to an object.
  • list: List notes associated with an object.
  • show: Show the content of a note.
  • copy: Copy notes from one object to another.
  • remove: Remove notes from an object.


Adding a note to a commit:

git notes add -m "Bug fix" 0123456789abcdef

Listing notes associated with a commit:

git notes list 0123456789abcdef

Copying notes from one commit to another:

git notes copy 0123456789abcdef 9876543210fedcba

Removing notes from a commit:

git notes remove 0123456789abcdef

Common Issues

  • Permission errors: Make sure you have write access to the repository.
  • Invalid object: Ensure that the specified object exists and is valid.
  • Conflicting notes: If the object already has notes and -n is specified, the update will fail.


With scripts: Notes can be queried and manipulated using Git commands. Scripts can automate note management tasks, such as adding notes based on specific criteria.

With other tools: Third-party tools, such as GitLab and GitHub, integrate with notes to provide additional functionality, including issue tracking and collaboration.

Related Commands

  • git blame: Displays annotations on code lines, including author and commit notes.
  • git config: Stores global and local configurations, including note-related settings.
  • git tag: Creates and manages tags, which can be used to annotate commits.