At this point your work is now in your branch on +GitHub+ and you can
share the link with other collaborators.
+[[git-gpg-signing]]
+=== Signing the commits, tags, and pushes, with GnuPG
+
+Git knows how to sign commits, tags, and pushes.
+
+When you sign a Git commit or a tag, you can prove that the code you submitted came from you and wasn't altered while you were transferring it.
+You also can prove that you submitted the code and not someone else.
+
+To sign one commit, you can simply use `git commit -s -S KEY-ID`.
+You can verify the signature of a commit with `git verify-commit <commit hash>`, or with `git log --show-signature`.
+To sign a tag, you can use `git tag -s -u KEY-ID <tag name>`, and to verify the signature, `git tag -v <tag name>`.
+
+
+
+While signed tags and commits assert that the objects thusly signed came from you, who signed these objects, there is not a good way to assert that you wanted to have a particular object at the tip of a particular branch.
+My signing v2.0.1 tag only means I want to call the version v2.0.1, and it does not mean I want to push it out to my 'master' branch -- it is likely that I only want it in 'maint', so the signature on the object alone is insufficient.
+The only assurance to you that 'maint' points at what I wanted to place there comes from your trust on the hosting site and my authentication with it, which cannot easily audited later.
+
+To sign a push, use: `git push --signed`.
+
+Doing it this way can get tedious very fast though.
+The best way is to simply tell Git you always want to sign commits, tags, and pushes.
+You can do this by setting a few configuration variables: