GitHub: a co-author is not credited for a commit
A commit is attributed to more than one author with one or more Co-authored-by trailers in its message. For the commit to count as a contribution, the trailer must use an email address associated with the co-author's account on GitHub.com; a co-author who keeps their email address private is named with their GitHub-provided no-reply email (GitHub's creating a commit with multiple authors, checked October 27, 2026).
Refactor usability tests. Co-authored-by: NAME <NAME@EXAMPLE.COM> Co-authored-by: ANOTHER-NAME <ANOTHER-NAME@EXAMPLE.COM>
Why the co-author is not credited
- The trailer: one
Co-authored-by: name <email>line for each co-author, after the description of the commit and an empty line. In the web editor on GitHub, the lines go in the text box below the commit message. - The email: GitHub links a commit to a user by matching the email address to an email address on a GitHub account. An address the co-author has not added to their account is not linked to them.
- A commit linked to no one: on the commit on GitHub, the mark next to the username says why: Unrecognized author with an email address (add that address to the account), Unrecognized author with no email address (set a commit email address in Git, then add it to the account), or Invalid email (GitHub's troubleshooting commits).
- A commit linked to someone else: change the email address in your local Git configuration, on each machine you work on, and add it to your account. Being linked to your commits does not give the other user access to your repository.
Squash merges
- One new commit: squash and merge combines the commits of a pull request into one commit on the base branch, with a default commit message that you can edit (GitHub's pull request merges).
- The default message: the commit title and message when the pull request has one commit, and the pull request title and list of commits when it has two or more. A repository can instead use the pull request title only, the title and commit details, or the title and description (GitHub's configuring commit squashing; see merge commit message not what you expected).
- Check the message: the trailers are part of a commit message, so before a squash merge, see that the
Co-authored-bylines are in the message of the commit that lands.
On behalf of an organization
- The trailer:
on-behalf-of: @ORG NAME@ORGANIZATION.COMon a signed commit attributes it to an organization. You must be a member, and both your commit email and the organization email must be in a domain the organization has verified. It is not available on GitHub Enterprise Server.
What to do
- Future commits: once the address is on the account, future commits that use it are linked to it. Old commits might not be linked after you change your email settings.
- A commit not pushed yet:
git commit --amendand add the trailer to the message. - A commit already pushed: changing its message creates a new commit ID, so the rewritten history has to be force pushed, for example with
git push --force-with-lease(GitHub's changing a commit message; see force push blocked when the branch refuses it).
In IntelliJ IDEA: one author per commit, the trailers left in the message
How the GitHub support built into IntelliJ IDEA reads who wrote the commits of a pull request, in its source (checked October 31, 2026; IntelliJ IDEA: commitShort.graphql, commit.graphql, gitActorInfo.graphql, GraphQL files):
- One author: it asks GitHub for each commit's
author(name, email, avatar, date and GitHub user) andcommitter. None of its 78 GraphQL files asks forauthors, GitHub's list built from the git author and the Co-authored-by trailers, so the IDE does not read whom GitHub credits as co-authors. - The trailers stay text: it asks for the commit's
messageHeadlineandmessageBody, so a Co-authored-by line is part of the message it reads, not an author.
GitHub pull requests in IntelliJ IDEA
Pull Request Inbox for GitHub, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, shows a pull request's reviews, checks and conversations next to the diff, and merges it with the methods the target branch allows. Its merge dialog sets only the commit title of a merge or squash commit (left blank, GitHub's default title is used) and adds nothing to the message, so the rest of the message is GitHub's automatic one. The review inbox, diffs and conversations are free; approving, commenting, resolving and merging are Pro (US$1.50 a month, with a 30-day trial).
GitHub is a trademark of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by GitHub, Inc. or JetBrains.
More: GitHub merge refused (405, 409) · GitHub review refused (422) · GitHub search 422 "Validation Failed" · "Resource not accessible by personal access token" · 401 "Bad credentials" · "Resource protected by organization SAML enforcement" · "API rate limit exceeded" · GitHub diff 406 "too_large", 3,000 files · GitHub line comment 422 "must be part of the diff" · GitHub branch update refused (422) · GitHub pull request not created (422, 403) · GitHub auto-merge refused · GitHub draft, ready for review or close refused · GitHub conversation not resolved · GitHub checks not shown (check runs 403) · GitHub file contents not read · GitHub compare refused (404, 422) · GitHub comment or reply refused (403 locked, archived) · GitHub merge method not allowed (405) · GitHub branch not found (404, 301) · GitHub Enterprise Server not reached · GitHub review request not shown · GitHub pull request list incomplete · GitHub 404 Not Found, renamed repositories (301, 307) · GitHub line comment outdated or not on the diff · GitHub pull requests not updating, notifications late · GitHub suggested change cannot be applied · GitHub required check stuck at "Expected" · GitHub code owner review required · GitHub merge blocked by unresolved conversations · GitHub merge blocked by unsigned commits · GitHub branch that merges through a merge queue · GitHub merge waiting for an approval of the most recent push · GitHub merge waiting for code scanning results · GitHub merge waiting for code quality results · GitHub merge blocked by a code coverage threshold · GitHub merge blocked by license compliance results · GitHub branch locked or its updates restricted · GitHub branch not deleted after merging · GitHub merge waiting for a team's approval (Required reviewers) · GitHub merge blocked by secret scanning alerts · GitHub stacked pull request not merging · GitHub push blocked by push rules · GitHub merge blocked by commit metadata rules · GitHub force push blocked · GitHub issue not closed by a merged pull request · GitHub pull request not checked out locally · GitHub pull request has merge conflicts · GitHub changes requested and dismissing a review · GitHub dependency review check failed · GitHub Dependabot not rebasing its pull request · GitHub fork not syncing with upstream · GitHub pull request base branch not changing · GitHub pull request not reverting · GitHub pull request template not showing · GitHub pull request labels or assignees not added · GitHub pull request not closing or reopening · GitHub push blocked by push protection · GitHub pull request comment hidden · GitHub pull request blocked until deployments succeed · GitHub team review request replaced by members · GitHub pull request file no longer marked Viewed · GitHub pull request marked merged without being merged · GitHub Copilot review does not count as an approval · GitHub checks not running on a pull request a workflow created · GitHub Update branch button not shown on a pull request · GitHub checks failing on a Dependabot pull request · GitHub checks failing on a pull request from a fork · GitHub checks skipped by [skip ci] in a commit message · GitHub checks gone after the retention period · GitHub code review limits in a public repository · GitHub pull requests turned off or limited in a repository · GitHub checks run on every pull request in a stack · GitHub pull request showing commits already squash merged · GitHub pull request not showing a file diff · GitHub push to a pull request branch from a fork refused · GitHub check cancelled on a pull request · GitHub Rebase and merge not available · GitHub merge commit message not what you expected · GitHub pull request shows every line changed · GitHub API request timed out · GitHub pull request image or document diff not shown · GitHub review request refused (422) · GitHub pull request from Copilot: checks not running, approval not counted · GitHub push refused: GH006 and GH013 on a protected branch · GitHub "At least 1 approving review is required", approvals that do not count · GitHub pull request plugins for IntelliJ IDEA, compared · 日本語