Author / committer / receipts / sign-off
How corrections are recorded, each project is determined. Git only supports two predefined identity fields: Author and Committer. It is also inappropriate to label reviews / confirmations. Git has extra support for the "Connected:" lines, but this is just plain text in a commit message (unlike the author and Committer, which is controlled and assigned a Git value).
Like all parts of commit messages, the value "Connected:" depends on each project defined. In the Git project, the lines “Signed:” mean something like “I confirm that this code is compatible with the license of this project” (see “Original Developer Certificate” in the Git SubmittingPatches document ). In a Git project, the lines “Acked-by:” mean something like “I looked at this change and it seems reasonable.”
A typical stream of corrections in a Git project is that participants generate signed patches with git format-patch -s and send them to the project mailing list, where they collect discussions and Acks (if necessary). Once the patch is ready for use, the maintainer will apply it after adding its own "Signed-off-by:". Thus, the maintainer is always a Committer (with the exception of some subsystems in which commits are pulled by mergers with supporting subsystems), but the original authors are still Authors. This workflow may or may not make sense in other projects.
So the “Signed:” in your commit example on GitHub is just the text at the end of the commit message. Its exact meaning is what the project assigns to such lines. The additional identification specified for this commit (marked as "(commit)" in the GitHub view) is due to the fact that the Transaction Participant is different from the author. This happens when you change the commit (for example, the tip of the branch or during reinstallation) or apply a patch that includes the "From:" header, which is different from your configured identifier. Making changes to someone else in addition to the statement or ack line (or fixing a typo in the commit message) will be enough to change the Committer.
In general, you should not worry about pushing your identity in the Committer field. You can reasonably relate to the recognition of the change embodied in the commit in some way (for example, say "I reviewed this" or "I approved this"). How you do this depends on the customs and policies of the project. Often these confirmations are made by adding the "bottom lines" to the commit message.
Ways to Add Acks
If Connected: builds the server as Acks in your project, you can easily add them by changing the commit using git commit --amend -s . Otherwise, this will require a change to the commit message to include any designation appropriate for your project.
Fully saved usage history
If preserving your original history is vital in your situation, you should probably use git pull --no-ff and add your "Ack" to the message to commit the received merge commit. Since you cannot rewrite, you will have to live with any typos of the commit message. For typos of content, you or the original contributor can add a commit that corrects the typo either before the merge, or you can add a fix after the merge.
With content fixing after merge:
git checkout <your-branch> git pull --no-ff --no-commit <repo> <contributor's-branch> git commit
Fully saved history (with some additional changes on top)
With content fixing before merging (or forcing the contributor to do this in his repository, then pull as described above, skipping the last fix step):
git fetch <repo> <contributor's-branch>:from-contributor git checkout from-contributor
You will be the author and committer of the merger and any commit. The author and committer of the traveling salesman will not be changed.
Rewriting some original history (but preserving the original branch point)
If you can rewrite history, you can make a local branch that contains your contributor, use git rebase -i to add “Ack” and fix the typo, and then merge it into your main branch.
git fetch <repo> <contributor's-branch>:from-contributor git checkout from-contributor git rebase -i HEAD~<N>
Instead of the final git checkout <your-branch> && git merge --no-ff --no-commit && git commit you can add your ack to the appropriate commits during the git rebase -i step, then use git checkout <your-branch> && git merge from-contributor , which can fast forward if the tip of <your-branch> is the ancestor of from-contributor .
You will be a member of any changed commits. The author of existing commits will remain unchanged if you do not use git commit --reset-author . You will be the Author and Committer of any new commits (commit merging and corrections).
Rewriting any or all of the contributed history
If you do not want to keep the branch point of the contributor branch, you can do this instead:
git checkout <your-branch> git pull --rebase <repo> <contributor's-branch> git rebase -i HEAD~<N> # fix-up typo, add Ack
The author and committer will be the same as in the redirect + merge scenario above.
Acking / Fixing Single Commit
If you use only one git rebase -i HEAD~<N> , the git rebase -i HEAD~<N> steps above could just be git commit --amend .