# コミットに署名する

GPG、SSH、または S/MIME を使用して、ローカルでコミットに署名できます。

> \[!NOTE]
> Git クライアントが既定でコミットに署名するように構成されている場合、[GitHub Desktop](https://desktop.github.com/) は、コミットの署名のみをサポートします。

> \[!TIP]
> Git バージョン 2.0.0 以降で、ローカル リポジトリ用に既定でコミットに署名するように Git クライアントを設定するには、`git config commit.gpgsign true` を実行します。 コンピューター上の任意のローカル リポジトリで、既定ですべてのコミットに署名するには、`git config --global commit.gpgsign true` を実行します。
>
> コミットに署名するたびに入力する必要をなくすために GPG キーパスフレーズを保管するには、次のツールの使用をおすすめします:
>
> * Mac ユーザーは、[GPG スイート](https://gpgtools.org/)により、macOS キーチェーンに GPG キー パスフレーズを保管できます。
> * Windows ユーザーの場合、[Gpg4win](https://www.gpg4win.org/) は他のWindows ツールと統合されます。
>
> また、GPG キー パスフレーズを保管しておくために [gpg-agent](http://linux.die.net/man/1/gpg-agent) を手動で設定できますが、これは ssh-agent のように macOS キーチェーンでは統合されず、さらに設定が必要です。

複数のキーを持っている場合、または、コミッターの ID にマッチしないキーでコミットやタグに署名しようとする場合、[サインインのキーを Git に伝える](/ja/enterprise-server@3.22/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)必要があります。

1. ローカルブランチに変更をコミットする場合、 -S フラグをGitコミットコマンドに追加します。

   ```shell
   $ git commit -S -m "YOUR_COMMIT_MESSAGE"
   # Creates a signed commit
   ```

2. GPG を使用している場合は、コミットを作成した後、[GPG キーを生成](/ja/enterprise-server@3.22/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)したときに設定したパスフレーズを指定します。

3. ローカルでのコミット作成が完了したら、GitHub 上のリモート リポジトリにプッシュします。

   ```shell
   $ git push
   # Pushes your local commits to the remote repository
   ```

4. GitHub 上で pull request に移動します。

5. Pull request で、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-commit" aria-label="git-commit" role="img"><path d="M11.93 8.5a4.002 4.002 0 0 1-7.86 0H.75a.75.75 0 0 1 0-1.5h3.32a4.002 4.002 0 0 1 7.86 0h3.32a.75.75 0 0 1 0 1.5Zm-1.43-.75a2.5 2.5 0 1 0-5 0 2.5 2.5 0 0 0 5 0Z"></path></svg> \[Commits]** をクリックします。

   ![pull request のタイトルとタブのスクリーンショット。 \[コミット\] タブが、濃いオレンジ色の枠線で囲まれています。](/assets/images/help/pull_requests/pull-request-tabs-commits.png)

6. 検証済みの署名について詳しくは、 **\[検証済み]** をクリックします。

   ![リポジトリのコミット リスト内のコミットのスクリーンショット。 \[検証済み\] がオレンジ色の枠線で強調表示されています。](/assets/images/help/commits/verified-commit.png)

## 参考資料

* [Git へ署名キーを伝える](/ja/enterprise-server@3.22/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [タグに署名する](/ja/enterprise-server@3.22/authentication/managing-commit-signature-verification/signing-tags)