LoginSignup
0
0

SourceTree(Windows)と GitHub の連携手順

Last updated at Posted at 2024-05-28

本記事での GitHub 連携は HTTPS で Personal access tokens を使用する。

環境

  • Windows 10 Enterprise 22H2
  • SourceTree 3.4.17

GitHub で Personal access tokens を生成

Personal Access Tokens (Classic) にアクセスする。

github.com_settings_tokens.png

右上のドロップダウン Generate new token から Generate new token (classic) を選択する。

github.com_settings_tokens_new.png

設定は好みだが、今回は以下のように設定した。

Note には利用用途がわかるように SourceTree と入力。
Expiration(有効期限)は 90 days を選択。
Select scopes(トークンが利用可能な権限)は repouser を選択。

Generate token をクリックしてトークンを生成する。

github.com_settings_tokens_complete.png

生成されたトークン XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX の部分をメモする。

SourceTree に GitHub のアカウントを追加

image.png

SourceTree のメニューより ツール > オプション > 認証 を選択し、追加をクリックする。

image.png

項目 選択値
ホスティングサービス GitHub
優先するプロトコル HTTPS
認証 Personal Access Token

上記のように選択後 Personal Access Token を再読み込み をクリックする。

image.png

ユーザー名 には GitHub のアカウント名を
パスワード には先ほど発行した Personal Access Token をそれぞれ入力して OK をクリックする。

image.png

image.png

認証に成功 と表示され、アカウントが追加されていればオーケー。

SourceTree で GitHub のリモートリポジトリをクローン

image.png

image.png

クローンを行う際に CredentialHelperSelector ダイアログが表示された場合は manager-core 及び Always use this from now on を選択する。
同ダイアログが 2回表示される場合、同じ選択を繰り返す。

https://nishikianago.hatenadiary.jp/entry/2023/02/20/001022
https://teratail.com/questions/mw4yzn2mzuowz4

コミットユーザーの設定

GitHub 以外のホスティングサービスを併用している場合など、リポジトリ毎にコミットユーザーを使い分けたい場合がある。

SourceTree 右上の設定より、リポジトリ設定を表示する。

image.png

グローバルユーザー設定を使う のチェックを外す。

フルネーム には GitHub のアカウント名を
メールアドレス には GitHub のアカウントに紐づけた自身のメールアドレス または GitHub が提供している noreply メールアドレスを入力する。

今回はセキュリティの観点から noreply メールアドレスを使用する。

自身の noreply メールアドレスは Email settings にて確認できる。
表示されていない場合は Keep my email addresses private のチェックが必要。


続いて SourceTree のターミナルを起動して、以下のコマンドを実行する。

git config --local user.name "[GitHub Account Name]"
git config --local user.email "[ID]+[GitHub Account Name]@users.noreply.github.com"

image.png

https://docs.github.com/ja/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address
https://ai-can-fly.hateblo.jp/entry/github-email-private

GitHub へのコミットに Verified マーク(署名)を付与する設定

https://zenn.dev/noraworld/articles/sign-commits-with-gpg-key
https://smile-jsp.hateblo.jp/entry/2020/08/12/125020

GPG キーの生成

image.png

gpg --full-generate-key

鍵の種類を選択

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection?

Enter でデフォルトの RSA and RSA を指定する。

鍵の bit 数を指定

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

4096 と入力して Enter で確定する。

鍵の有効期限を指定(無期限)

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)

0 と入力して Enter で確定する。

設定の確認

Is this correct? (y/N)

y と入力して Enter で確定する。

名前とメールアドレスの設定

Real name: naente
Email address: 47913993+naente@users.noreply.github.com
Comment:

Real name を訊ねられるが本名である必要はない。
Email address には GitHub の noreply メールアドレスを指定する。
Comment は未入力で問題ない。

最終確認

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

O と入力して Enter で確定する。

パスフレーズの設定

GPG キーに任意のパスフレーズを設定する。

image.png

再入力を求められるので、もう一度同じパスフレーズを入力する。

image.png

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key XXXXXXXXXXXXXXXX marked as ultimately trusted
gpg: revocation certificate stored as '/c/Users/naente/.gnupg/openpgp-revocs.d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.rev'
public and secret key created and signed.

pub   rsa4096 2024-05-22 [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid                      naente <47913993+naente@users.noreply.github.com>
sub   rsa4096 2024-05-22 [E]

GPG キーの生成が完了した。

GitHub アカウントへ GPG キーを設定

GPG キーの取得

image.png

gpg --list-secret-keys --keyid-format=long

以下のような情報が表示される。

/c/Users/naente/.gnupg/pubring.kbx
--------------------------------------
sec   rsa4096/9240835302B1CB2F 2024-05-22 [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid                 [ultimate] naente <47913993+naente@users.noreply.github.com>
ssb   rsa4096/XXXXXXXXXXXXXXXX 2024-05-22 [E]

GPG キー ID (上記の例でいう 9240835302B1CB2F の部分) をクリップボードにコピーする。

コピーした GPG キー ID を指定して、以下のコマンドを実行する。

gpg --armor --export 9240835302B1CB2F

image.png

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGZNRgQBEADdnPSp7dDHv1H63JlAWt1i2apbo53dXC9IKgSQzLt5xY0al+Lo
PXa+nMtJVMJCDuXuosaQneN5tdkNACdGM1h95HnCnSTDcidYFzf+N93SlapG6VbR
RFde+4PabDhiUcyo53kt65geaUqqbULNFCyjH1WY5obuajYGNENmPkXVHAKfy7eF
jQOHASRhR3MWERK3ca3sbRPKjkD05XfEFT3ZcB1N+nryg8AaDtBsffzrrsF6WTBn
z+Y6eL8iF+MZiOBSv+6+Pta7zH/Mfspo1nRfvpkPJPF3W7ZzlMogQOMBbsA/MqCf
NeV3MtGWUmW7142RLz4mgMqYFYFsu3p8Hv3exmWCTSjgtg4Vbk9cPSSPItIqKy1l
SiNOzGHvUpcYJSlAdF2rwaFe0gOPQhi8UOHiUZC+wrX3qPnMS3E+HIWrx1SLxLBQ
kyJlyH1uF/QqIwcwdtm8SS/NwhLM6e8kHNJJRiyn0kv8uOmuqLY0dCFwivjViEWH
dtZzpEp3WCppNA9gD9hJjoOuVwkLe3vkk5tQkg7xuqz1S991Q/5Qex/U8dsqOPCi
...
-----END PGP PUBLIC KEY BLOCK-----

表示された GPG キーを -----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK----- も含めてクリップボードにコピーする。

GitHub アカウントへ GPG キーを登録

Add new GPG key

github.com_settings_gpg_new.png

Key フィールドへコピーした GPG キーを貼り付け Add GPG key をクリックして登録を完了する。

Git に GPG 署名キーを設定

今回は対象のリポジトリへの署名にのみ GPG キーを使用したいので以下のコマンドを実行する。

image.png

git config --local user.signingkey 9240835302B1CB2F

既定でコミットが署名されるように以下のコマンドを実行する。

image.png

git config commit.gpgsign true

動作確認

SourceTree からプッシュできること、GitHub のページでコミットに署名が付与されていることを確認する。

image.png

image.png

GPG キーのパスフレーズを求められたら入力する。

image.png

image.png

コミット内容に Verified の表示があれば成功。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0