Sign git commits with GPG

Is there a way to sign git commits with gpg? It’s so easy with tags (using -s instead of -a), it seems there would be a similar function for commits.

  • Using p4merge as git diff tool
  • How to refresh Gitlab Webinterface
  • Git commits in emacs without changing window layout?
  • View a file's history in Magit?
  • Merging without whitespace conflicts
  • pull instead of fetch - accidentally merged remote master into local branch
  • How do I apply a patch from gist to the Django source?
  • Undo git last commit push
  • Start from GitHub repo, clone it privately in BitBucket, and also grab changes from the original?
  • How to run git hook script on windows, using repository through filesystem?
  • How to get the SHA of the checked out code with ansible git module?
  • How to merge all files manually in Git?
  • 2 Solutions collect form web for “Sign git commits with GPG”

    git commit -S (requires git >= 1.7.9).

    Note: Adding the -S option all the time can be cumbersome.
    In git 2.0 and later, you can add a config which will take care of that option for you.

    See commit 2af2ef3 by Nicolas Vigier (boklm):

    Add the commit.gpgsign option to sign all commits

    If you want to GPG sign all your commits, you have to add the -S option all the time.
    The commit.gpgsign config option allows to sign all commits automatically.


    A boolean to specify whether all commits should be GPG signed.
    Use of this option when doing operations such as rebase can result in a large number of commits being signed. It may be convenient to use an agent to avoid typing your GPG passphrase several times.

    As Apteryx commented below:

    To set this globally on the command line:

    git config --global commit.gpgsign true
    Git Baby is a git and github fan, let's start git clone.