新しいMacに Git の設定やり直したのを書き忘れてたので思い出しながらメモ。
環境
Git のインストール
- Xcode の Xcode Command Line Tools をインストールする
ターミナルでgit --version
コマンドを叩くと Command Line Tools をインストールするか聞かれるダイアログが表示されるので Yes を選択すると git が使えるようになる。(楽) - Home brew でインストールする
$ brew install git
Git の設定
global に色々設定する。
設定ファイルは /Users/<user>/.gitconfig
に作成される
ユーザー情報
$ git config --global user.name "<NAME>" $ git config --global user.email "<YOUR E-MAIL>"
デフォルトのエディタをvimにする
$ git config --global core.editor 'vim -c "set fenc=utf-8"'
ファイル名の大文字/小文字を識別する
$ git config --global core.ignorecase false
rebase 時に自動的に --autosquash
する
$ git config --global --add rebase.autosquash true
cf. git コミットログを綺麗にしたい。fixupとsquash - かもメモ
git pull の設定
Git v2.27 から git pull のオプションを指定するように Warning が出るようになっているので、fast-forward な時はそのまま marge, fast-forward でない時は マージコミットを作成する今までの挙動 (--ff
) をデフォルトに設定する
$ git config --global pull.rebase false
cf. Git 2.27 での git pull 時の warning について - Qiita
カラー設定
$ git config --global color.ui true $ git config --global color.diff auto $ git config --global color.status auto $ git config --global color.branch auto
設定の確認
$ git config --global -l
Git コマンドのエイリアスを作成
git checkout
とか毎回タイプするの面倒なのでエイリアスを作成する。
エイリアスは git config <option> alias.<alias name> <command>
の形で指定する。コマンドにスペースが含まれる場合は '
で囲って文字列で指定できる。
$ git config --global alias.st status $ git config --global alias.br branch $ git config --global alias.co checkout $ git config --global alias.cm commit $ git config --global alias.gr grep $ git config --global alias.cp cherry-pick $ git config --global alias.l log $ git config --global alias.l1 'log --oneline' # ログの tree 表示 $ git config --global alias.tree 'log --graph --oneline' $ git config --global alias.treeall 'log --graph --all --format="%x09%C(cyan bold)%an%Creset%x09%C(yellow)%h%Creset %C(magenta reverse)%d%Creset %s"' $ git config --global alias.rb rebase $ git config --global alias.rb2 'rebase -i HEAD~2' $ git config --global alias.rb3 'rebase -i HEAD~3' $ git config --global alias.rb4 'rebase -i HEAD~4'
GitHub に ssh で接続できるようにする
基本的に公式のドキュメントを見ながら設定すればOK
新しい SSH キーを生成して ssh-agent に追加する - GitHub Docs
SSH 秘密鍵・公開鍵の作成
ed25519
で秘密鍵と公開鍵を作成する
$ ssh-keygen -t ed25519 -C "your_email@example.com" Generating public/private ed25519 key pair. # 秘密鍵・公開鍵の保存場所とファイル名 Enter file in which to save the key (/Users/<user name>/.ssh/id_ed25519): # パスフレーズの設定 設定しない場合はそのままエンター Enter passphrase (empty for no passphrase): # パスフレーズの確認 Enter same passphrase again:
/Users/<user>/.ssh
配下に id_ed25519
と id_ed25519.pub
が作成される
note. ed25519
が使えない場合は RSA で作成する
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
秘密鍵を読み取り専用にする
$ chmod 600 ~/.ssh/id_ed25519
公開鍵を GitHub に登録する
cf. GitHub アカウントへの新しい SSH キーの追加 - GitHub Docs
- GitHub のメニューから Settings を選択
- 左メニューから SSH and GPG keys を選択し、New SSH Key ボタンをクリック
- Title にどのマシンの公開鍵か分かる名前を設定、
Key にさっき作成したid_ed25519.pub
の内容をコピペで貼り付けて Add SSH key をクリック
SSH の設定
SSHの設定ファイルは /Users/<user>/.ssh/config
ファイルがない場合はファイルを作成する
$ touch ~/.ssh/config
パスフレーズをキーチェーンに記憶して使うようにする
パスフレーズを設定している場合、SSH で接続する際に毎回パスフレーズを聞かれるのでキーチェーンにパスフレーズを保存して使うようにする。
~/.ssh/config
に下記内容を追記する
Host * UseKeychain yes AddKeysToAgent yes # ssh-agent を使用する
GitHub への接続設定
~/.ssh/config
に GitHub への接続設定を追加する
Host github.com HostName github.com User <GitHub に登録しているメールアドレス> Port 22 IdentityFile "~/.ssh/id_ed25519" # GitHub 用の SSH 秘密鍵
ssh-agent に秘密鍵を登録する
ssh-agent をバックグラウンドで起動
$ eval "$(ssh-agent -s)" > Agent pid 12345
秘密鍵を ssh-agent に追加
ssh-add -K <秘密鍵>
で追加できる
$ ssh-add -K ~/.ssh/id_ed25519
ssh-agent に登録された秘密鍵の確認
$ ssh-add -l # 登録されている SSH キーのリストが表示される
GitHub への接続の確認
$ ssh -T git@github.com Hi KiKiKi-KiKi! You've successfully authenticated, but GitHub does not provide shell access.
successfully なメッセージと GitHub のユーザー名が表示されていれば OK
₍ ᐢ. ̫ .ᐢ ₎ 👌 できた
ssh-agent の理解が薄くて調べながら書いてたら記事分割していいくらい長くなってしまったケド、まぁまた見直す事があるでしょうからヨシ!
おわり。
[参考]
まちカドまぞく 6巻やっと読めた!危機管理〜