Git入門(準備編)
Git入門(準備編)
インストール
自分の環境に合ったGitをインストールして下さい。
私は多分昔にhomebrew使ってインストールしたみたいでした。
機会があればインストールについて追記します。
準備
Gitの設定はgit configコマンドを使います。
GitHubとの接続設定
現在、パスワードによる認証は 2021/8/13で使えなくなったみたいです。
以下の3つが今利用できる認証方法(参照:リモートリポジトリについて)みたいですね。
- Personal Access Token
- SSH
- GitHub CLI
Personal Access Tokenでの認証
Personal Access Tokenを使う場合は次の手順で発行します。
-
GitHubで右上のアイコンをクリックして、「Settings」→「Developer Settings」(左メニューの一番下)を選択。
-
「Personal Access Token」→「Token(classic)」を選択。
-
「Generate New Token(classic)」からTokenを作成
項目 入力値 Note 「トライアル用アクセストークン」 Expiration 30日 Select scopes repoに全チェック -
「Generate Token」ボタンを押下するとPersonal Access Tokenが発行されるのコピーしておく。
このトークンをパスワードの代わりに入力するとgit cloneできる。
SSH認証
SSH接続するためには事前に秘密鍵と公開鍵を準備して、作成した公開鍵をGitHubに登録します。
作成した秘密鍵は誤って公開しないように注意して下さい。
秘密鍵・公開鍵の作成
GitHubに公開されている手順を見ると以下のように記載されています。
ssh-keygen -t ed25519 -C "your_email@example.com"
- -t: 鍵の種類
- -C: コメント
どうも、コメントは鍵に付与されるコメントみたいです。
-Cオプションを指定しないとデフォルトで「username@hostname」になるみたいです。
ただ、鍵に余計な情報を付与したくないのであれば-C ""とした方が良いみたいです。
コメントは鍵のラベルみたいなものの様なので、識別できる情報を入れておけばいいかもしれません。
私は以下の様にして作ることにしました。
$ ssh-keygen -t ed25519 -C "GitHub - My Account Name" f ~/.ssh/id_ed25519_github
- -f: ファイル名を指定。デフォルトは ~/.ssh/id_ed25519
パスフレーズを設定してセキュリティを強化したい場合は、画面の指示に従ってパスフレーズを入力して下さい。
これで指定したフォルダ直下に鍵が作成されます。
- 秘密鍵:id_ed25519_github
- 公開鍵:id_ed25519_github.pub
公開鍵の登録
-
GitHubで右上のアイコンをクリックして、「Settings」→「SSH and GPG keys」を選択します。
-
「New SSH key」ボタンを押下します。
項目 説明 Title 任意のタイトルを入力します。 Key type Autentication Key Key 先ほど作成した公開鍵の内容をクリップボードにコピーして貼り付けします。 補足:お使いのPCがMacの場合は、次のコマンドでクリップボードにコピーできます。
$ pbcopy < ~/.ssh/id_ed25519_github.pub
-
「Add SSH key」ボタンを押下して保存します。これでGitHubへの公開鍵の登録は完了です。
SSH接続の準備と確認
-
SSH設定ファイルが存在しているか確認します。
次のコマンドファイルが存在していればテキストエディタが別ウィンドウで開きます。$ open ~/.ssh/config The file /Users/<UserName>/.ssh/config does not exist.
存在していないのファイルを作成します。
$ touch ~/.ssh/config
-
以下の内容を作成したSSHの設定ファイルに記載して保存します。
Host github.com IdentityFile ~/.ssh/d_ed25519_github User git
-
接続をテストします。
$ ssh -T github.com The authenticity of host 'github.com (IP ADDRESS)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. Are you sure you want to continue connecting (yes/no)?
メッセージのフィンガープリントがGitHubのSSHキーフィンガープリントと一致していることを確認して「yes」を入力します。
パスフレーズを設定している場合はパスフレーズを入力します。
以下の通りメッセージが表示さればSSH接続か成功です。Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.
Gitの設定
gitの設定は3種類あります。
種類 | 説明 | ファイルの場所 |
---|---|---|
system | コンピューター全体(全ユーザーの全リポジトリに影響) | /etc/gitconfig |
global | ログインしているユーザーの全リポジトリ | ./.gitconfig |
local | 該当リポジトリ直下 | repository/.git/config |
今回はglobalに最低限の設定としてユーザー名とメールアドレスを設定します。
これを事前に設定しておかないとコミット時に以下の様なメッセージが出てコミットできません。
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address
メールアドレスの設定
次のコマンドでメールアドレスを設定します。
$ git config --global user.email "xxxxx@yyyy.com"
ユーザー名の設定
$ git config --global user.name "zzzzz"
登録内容の確認
次のコマンドで設定がリストで表示されます。
$ git config --global --list
その他
git initコマンドでローカルリポジトリを初期化するとdefaultブランチを指定しなさいの警告が出ます。
その時設定してもいいですが、一旦デフォルトブランチをmainで知ってしておきます。
git config --global init.defaultBranch main
Discussion