0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mac に git を入れて GitHub に接続してみた

Posted at

はじめに

こんにちは、やしまです。
そもそもHomebrewを入れたのは git を入れるため(もちろん今後めっさ働いてもらうけど)ってことで git を入れます。

前提

まずはHomebrewはインストールされていること。
そして最新版になっていること。( brew update 済み)

とりあえず自分のgitリポジトリにアクセスするのでGitHubのアカウントは持っていること。
BitBucketはGitHubを同じような感じなので今回は省略します。

やったこと

gitのインストール

とりあえずMacにはデフォルトで git が入ってるとのことで、今の git のバージョンを確認しておく。

git -v

※ このコマンドはあとでも使うのでよろしく

そしてHomebrewを入れたので、よく考えずに以下のコードを叩く。

brew install git

そして git のバージョン確認。
ここでインストールする前からMacに入ってた git のバージョンが出てきたら、それは今のシェルが最新のパスを認識してないだけ(のはず)
なので新しいシェルを立ち上げるなりしてバージョン確認のコマンドを叩き、思ったバージョンが表示されることを確認。

git version 2.50.1

今回はこんなバージョンになりました。

gitの設定

とりあえずユーザ名とe-mailを

git config --global user.name "${USER_NAME}"
git config --global user.email "${USER_EMAIL}"

※ 環境変数なところは適切な値にする

そして個人的な git command のエイリアスを設定

git config --global alias.st "status"
git config --global alias.br "branch"
git config --global alias.co "checkout"
git config --global alias.cob "checkout -b"

git はコマンドで操作する自分はこれがホント大事なのです。

gitの設定

git(とか)の補完設定もしておく。
Tabキーでコマンドが補完されると便利ですよね(むしろ補完されないのはもう無理)

いろんな方法がありそうだけど、せっかくHomebrew入ってるのでこれを使う方法で。
まずは補完用パッケージのインストール。

brew install git zsh-completions

そしてインストール時に表示されるよう、それが有効になる設定を。
.zshrc に書けとのことだけど .zprofile でもタイミングとかの違いなので後者で行きます。(zsh用のcronで動くバッチとか書く予定があったら気にしてください)
そして確認とかめんどくさいのでオプションをちょっとアレンジして以下を .zprofile に追加。

if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

    autoload -Uz compinit
    compinit -u
fi

※ compinitコマンドに -u つけてます

書いたものをすぐに有効にするためシェルに読み込む。

source ~/.zprofile

読み込んだらインストール時に表示されたよう、以下を実行。

rm -f ~/.zcompdump; compinit

ここではcompinitコマンドに -u がついてないので確認されますが、当然のようにyesです。

SSH鍵の作成

GitHubへコマンドからアクセスするための設定を行います。
まずはSSHで繋ぐためのキーペアを作成します。
自分用のキーペアをすでに作って持っていたら、この作業はスキップしてOKです。

ホームディレクトリに .ssh ディレクトリを作成。
lsコマンドの結果に @ が表示されないように所有者を変えてもいいですが、自Macだし変える必要はないので省略します。

mkdir ~/.ssh

ディレクトリのアクセス権限を自ユーザ以外はアクセスできないように変更します。

chmod 700 ~/.ssh

もしかしたらディレクトリの権限変更は不要かもしれませんが、このあたりの権限を設定しないで繋がらないことが経験上多々あったので、もうやってしまいます。
真実を知りたい方がいましたら、ぜひ調べて結果をご連絡いただけると。

先ほど作ったディレクトリにキーペアを作成します。

ssh-keygen -t rsa -b 4096 -f id_rsa_mba

id_rsa_mba は作成するファイル名で、指定しないとデフォルトの id_rsa になります。
私はAWSでEC2を立てたときとかにキーペアを配布されたことがあったので、わかりやすい(というか区別がつきやすい)名前にしています。

そして秘密鍵のアクセス権限を自ユーザ以外はアクセスできないように変更します。

chmod 600 ~/.ssh/id_rsa_mba

この権限変更は必須です。
権限変更しておかないと、アクセス時に秘密鍵を読み取ってくれません。

結果、こんな感じになります。

$ ls -l ~/.ssh | grep id_rsa_mba
-rw-------@ 1 yashima  staff  3401  8  4 19:46 id_rsa_mba
-rw-r--r--@ 1 yashima  staff   760  8  4 19:46 id_rsa_mba.pub

ここでも名前出ちゃってますが、まあ気にしないでおきます。

GitHubへの登録

作った(自分の)キーペアをGitHubのアカウントと紐づけます。
画面を切り貼りするのはめんどくさい(GitHubだし貼らないでもわかりやすいはず)ので文字だけです。
以下の手順でSSHKeyを追加します。

  1. ブラウザで GitHub へアクセス(そしてログイン)
  2. 右上(たぶん)の自アイコンからSettingsを選択
  3. 左のリストから SSH and GPG keys を選択
  4. こんな画面 に行くので New SSH key をクリック
  5. キーペアに関する情報を入力して Add SSH key をクリック
    • タイトルは何のキーペアか後から見てわかりやすいように
    • key type はそのまま Authentication key
    • Keyはあとから説明します
  6. たぶん2段階認証の何かを求められるので入力して完了

Keyの説明

ここでは公開鍵の中身を貼り付けます。
プレースホルダに書いてあるような内容になっているので、間違って秘密鍵を貼り付けないようにします。
私は cat コマンドで出力して、それを貼り付けています。

cat .ssh/id_rsa_mba.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC78RJJMzTq5zkJt7i6o/qlaat3fyrqB2Un9WhR5MHqzD8WGyp07mOSYzJQxiXxK8qzw4aI0O4wCs+rkFin6Gu3+PcKTznm/jovW/SZGPhhCvLHzRyHbcPtw2nmuEL4PrdWUn9Ma4eiXv/1lApqFEWPLDuJnVtAALWHEOpmFNsEHFcI7Pitv7Sc1bwuwxb8yY/Zo2gDI45MuBOM4mAECXGI1o/SaiU2Vt/CWVWoizIrWf513opi/s126IWwpm/35kkmx18eHcHh8/11Q5CoQmkf+cc7OxeGznyWZj7FnwlYRn75V91SyYyyPxFL/YSbVRiXeClE+IoBFl3FN5LwVIX3Guc1nR5K7J7j5GPaOv7IMhmSrP/Kono/Koukaikagiha/Damii/Desu/99tKYbJ6UMwmknyYgtblXxBGSLsJp+9y5PDD0GCCW6FT1kggjnpCJEYTEI7ylQ9FJi/j7XqhSt3ujInJoj+DnUdbYuuHSWi/GK6XgxMTRjOhz5KrHH1Ef8TqDxJvLuUjhUeaGQY4oVf11HPw99PADNKBIW9VItrjVPo+agiFPKEAqZIs88Wb0fU818nlGgJ2dr02VW3BQTyY0ZYYJO/nWysz3sLBHgyc6/kKSxX7jDFEL/BKI+kiVR3CzNgXkrlyS4IWCBaLm/ghXDxYYxCgoCFN25dunw== user@machine-name.local

こんな感じの出力結果なので、コマンドの次の行から次のプロンプトの前までコピーして貼り付けます。
ここでは1行で表示されてると思いますが、ターミナルだと複数行にまたがって表示されると思います。
複数行でも改行は入っていないので、無視してコピーでいけるはずです。

SSHの接続設定

SSHで接続する際に、どの秘密鍵を使うかを設定します。
設定はキーペアも置いた .ssh ディレクトリの config というファイルに記載します。

vi ~/.ssh/config

※ このファイルの権限は気にしないでも大丈夫らしいですが、いちおう他ユーザはアクセスできないようにしておいたほうが良いと思います(必要ではないのでコマンドは上の方を参考に)

各設定項目に細かい理由はありますが、それぞれの説明は省略します。(実はよくわかっていない項目もあるし、やりすぎな感じがするので)

というわけで以下のように設定しました。

Host *
        UseKeychain yes

Host github.com
        HostName github.com
        IdentityFile ~/.ssh/id_rsa_mba
        TCPKeepAlive yes
        IdentitiesOnly yes

GitHubへのアクセス

GitHubのリポジトリでCodeをクリックするとClone用のリポジトリURLを表示することができます。
ここでSSHを選択するとSSH用のリポジトリURLが表示されるので、それを使います。
こんな感じです。

git clone git@github.com:${REPOSITORY_OWNER}/${REPOSITORY_NAME}.git

これでアクセスできれば設定はOKということです。
※ 初めてアクセスする際には信用していいサイトかどうか確認されますが、当然のようにyesとして進みます

終わりに

とりあえず的ですが git を入れて開発できるようになった(別PCとのソース共有ができるようになった)ので、初期設定系はここでいったん終わりになるのかなと思っています。
もし次があれば、何か技術的なことになるのかなと夢見ながら今回はここで終わりです。

ではでは。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?