# Подписание фиксаций

Вы можете подписывать фиксации локально с помощью GPG, SSH или S/MIME.

> \[!NOTE]
> [GitHub Desktop](https://desktop.github.com/) поддерживает только подписывание фиксации, если клиент Git настроен для подписывания фиксаций по умолчанию.

> \[!TIP]
> Чтобы настроить клиент Git для подписывания фиксаций по умолчанию для локального репозитория, выполните `git config commit.gpgsign true` в Git версии 2.0.0 и более поздних версий. Чтобы подписать все фиксации по умолчанию в любом локальном репозитории на компьютере, выполните команду `git config --global commit.gpgsign true`.
>
> Для сохранения кодовой фразы ключа GPG, чтобы вам не приходилось вводить ее каждый раз, подписывая фиксацию, рекомендуется использовать следующие инструменты:
>
> * Для пользователей [Mac GPG Suite](https://gpgtools.org/) позволяет хранить парольную фразу ключа GPG в цепочке ключей macOS.
> * Для Windows пользователей [Gpg4win](https://www.gpg4win.org/) интегрируется с другими инструментами Windows.
>
> Вы также можете вручную настроить [gpg-agent для сохранения парольной фразы ключа GPG, но это не интегрируется с цепочкой ключей macOS, например ssh-agent](http://linux.die.net/man/1/gpg-agent) и требует дополнительной настройки.

Если у вас несколько ключей или вы пытаетесь подписать фиксации либо теги с помощью ключа, который не соответствует удостоверению фиксации, следует [сообщить Git о ключе для подписывания](/ru/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](/ru/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перейдите к запросу на вытягивание.

5. В запросе на вытягивание щелкните **<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**.

   ![Снимок экрана: название и вкладки запроса на вытягивание. Вкладка "Фиксации" выделена темно-оранжевым цветом.](/assets/images/help/pull_requests/pull-request-tabs-commits.png)

6. Чтобы просмотреть более подробные сведения о проверенной подписи, нажмите кнопку **"Проверено".**

   ![Снимок экрана: фиксация в списке фиксаций для репозитория. "Проверено" выделено оранжевым контуром.](/assets/images/help/commits/verified-commit.png)

## Дополнительные материалы

* [Предоставление GIT информации о ключе для подписывания](/ru/enterprise-server@3.22/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [Подписывание тегов](/ru/enterprise-server@3.22/authentication/managing-commit-signature-verification/signing-tags)