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.