Git と GitHub のセットアップ
バージョン管理システム
バージョン管理システムを用いると、プログラムへの変更の履歴を追跡できます。これにより、大規模なプログラムや、複数人で開発されたプログラムを効率的に操作できます。
Git は、現在最もよく使われるバージョン管理システムです。軽量ながらも多機能であり、周辺のエコシステムも非常に充実しています。
Git のインストール
macOS と WSL のいずれも、Git は標準搭載なので追加でインストールする必要はありません。
Git の拡張機能のインストール
VS Code 標準の機能だけでも多くのことができますが、より便利に利用するために拡張機能を併用していきます。次の拡張機能をインストールしておきましょう。
GitLens
コミットの差分などが見やすくなり便利
Git Graph
コマンドパレット (command + shift + P (macOS) / Ctrl + Shift + P (Windows) ) に Git Graph: View Git Graph (git log)
というメニューが出 て見やすい
GitHub への登録
GitHub は、Git で管理されたソースコードを共有することができるサービスです。Git を使ううえで GitHub への登録は必須ではありませんが、Git を用いた共同開発では通常 GitHub が使用されます。
GitHub に登録しましょう。
GitHub のアカウント名は、開発者コミュニティにおける自分のアイデンティティになります。他の開発者とやり取りする際に表示される名前になるので、慎重に決めてください。
Git と GitHub の初期設定
ユーザー情報の登録
Git では、ファイルの変更だけでなく、その変更を行ったのが誰なのかも記録します。Git に対して名前とメールアドレスを登録しましょう。
-
名前: 必ず GitHub のアカウント名と一致させるようにしてください。
-
メールアドレス: GitHub の登録の際に設定したメールアドレスが推奨されますが、メールアドレスを公開したくない場合は、次のようにダミーのメールアドレスを取得することもできます。
GitHub のメール設定から
Keep my email addresses private
を有効化し、表示されているダミーのメールアドレス (スクリーンショットの例では112743782+sample-ma9qke@users.noreply.github.com
) を Git に指定してください。
名前とメールアドレスを登録するために、次の 2 つのコマンドを実行しましょう。
git config --global user.name 名前
git config --global user.email メールアドレス
自分が書いたプログラムを GitHub を用いて公開する場合、ここで設定した名前とメールアドレスが公開されます。メールアドレスを公開したくない場合は、上記で取得したダミーのメールアドレスを設定してください。
デフォルトブランチの設定
現在 WSL 上の Ubuntu の Git では、デフォルトブランチというものが master
に設定されていますが、macOS では main
になっています。また、GitHub ではデフォルトブランチが main
になっています。これらを統一するために、次のコマンドを実行してください。
git config --global init.defaultBranch main
公開鍵・秘密鍵ペアの作成と GitHub への登録
GitHub にブラウザからログインする際にはメールアドレスとパスワードを用いますが、Git のコマンドを用いて GitHub を使用する場合には、公開鍵・秘密鍵のペアを使用します。
公開鍵暗号では、「公開鍵」「秘密鍵」の 2 つの鍵が登場します。この 2 つの鍵は、「公開鍵で暗号化されたデータは秘密鍵を持っていないと復号できない」という特徴を持っています。
自分の PC で生成した公開鍵と秘密鍵のペアのうち、公開鍵のみをブラウザから事前に GitHub に登録しておくことで、自分の PC に保存されている秘密鍵を用いて認証できるようになります。
GitHub に公開鍵を登録しましょう。
詳細な手順は、次の通りです。
公開鍵と秘密鍵のペアを生成するには、ssh-keygen
コマンドを使用します。次のコマンドを実行することで、Ed25519
というアルゴリズムの実装を用いて鍵を生成できます。
途中でターミナルの表示画面が止まりますが、user@host:~$
が再度表示されるまで Enter キーで進みます。
$ cd ~
$ ssh-keygen -t ed25519
デフォルトでは公開鍵が ~/.ssh/id_ed25519.pub
、秘密鍵が ~/.ssh/id_ed25519
に格納されます。公開鍵のファイルを cat
コマンドを用いて出力しましょう。
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEqE0cyVkFSFD/BlAwvJ9QejXwgyFppn5JDQc8iGW/Gp [ユーザー名]@[コンピューター名]
ssh-ed25519 AA...Gp
の部分をコピーしましょう。これが公開鍵です。
パスの中に現れる ~
は、ホームディレクトリを表します。ホームディレクトリとは、ユーザー毎に割り当てられたディレクトリで、macOS では /Users/ユーザー名
、Ubuntu では /home/ユーザー名
になります。デスクトップやドキュメントディレクトリも通常ユーザーディレクトリの下に配置されています。
ssh-keygen
が生成する標準の公開鍵は、スペースを区切り文字として 3 つのパートに分かれています。鍵の種類、鍵の中身、コメントです。コメントの部分はなくても構いません。
ssh-ed25519 AAAAC3...GW/Gp user@computer
これを GitHub の SSH 鍵の設定から登録します。
登録ページへの移動方法は、Settings
> SSH and GPG keys
> New SSH key
と順に移動すればたどり着けます。
上記のようなページが表示されたら、Title
に適切 な名前、Key
には先ほどターミナルで表示した公開鍵を入力して登録しましょう。
確認
ここまでで Git と GitHub のセットアップが完了しました。 この章で行ってきたセットアップが正しくできているのかは次のようにして確認することができます。
Git の初期設定の確認
次のコマンドを実行することで Git の設定を確認することができます。
git config --global --list
次のように表示されていれば正しく設定できています。
$ git config --global --list
user.name=名前
user.email=メールアドレス
init.defaultBranch=main
SSH 接続のテスト
次のコマンドを実行することで SSH 接続が正常につながっているかをテストすることができます。
ssh -T git@github.com
この操作の際、初回は以下のような警告が出る場合があります。
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
これは、接続先となっている GitHub が、なりすましではなく本物の GitHub であると信頼してもよいかを尋ねるメッセージです。
家庭用のインターネット回線、UTokyo Wi-Fi 等、十分に信頼できるネットワークに接続している場合は問題ありませんので、yes
と入力して続行させてください。
次のように表示されたら成功です。
Hi 名前! You've successfully authenticated, but GitHub does not provide shell access.