Git入門
Gitを改めてしっかり学び直しているメモ。
環境
- macOS Bigsur
- git version 2.24.3 (Apple Git-128)
目標
- ブランチ名をプロンプトに表示したい
- tab補完をしたい
- 各種設定を一発で行いたい
macOSの標準shellは最近はzshになったので、zshの設定ファイル等を作る必要あり。
以下の設定内容はプロンプトにブランチ名等を表示するためのもの
.zshrcをホームディレクトリに作成
touch ~/.zshrc
以下の設定を.zshrcに書き込む
source ~/.zsh/completion/git-prompt.sh
setopt PROMPT_SUBST
PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
fpath=(~/.zsh/completion $fpath)
autoload -Uz compinit && compinit -i
書き込む
cat ./settingfile > ~/.zshrc
source ~/.zsh/completion/git-prompt.shで読み込むgit-prompt.shをダウンロード
$ mkdir -p ~/.zsh/completion/
$ curl -LO https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
$ mv ./git-prompt.sh ~/.zsh/completion/
これで、Gitをterminalで使いやすくなった。
次にGitのconfigを行う。
user.nameは自由に決められるがここではPCのユーザー名にしてみる
$ git config --global user.name `whoami`
ちなみに、user.emailは普段使っているメールアドレス等を使用したくない場合、github等にあるprivate emailを使うのも一つの手である。
githubでの例
アカウントにログインもしくは新規作成する。
settingsをクリック
Emailsをクリック
Keep my email address privateのチェックボックスをクリックし、提示されるemailをコピーしておく
以下を実行する([youremailinfo]は適宜読み替えてください)
$ git config --global user.email [youremailinfo]@users.noreply.github.com
次にrsa公開鍵をgithubに登録する。
これで、ssh経由でのクローンができたりする。
まず、以下を実行
$ ssh-keygen
必要事項を入力してrsa暗号ファイルを生成する
※途中でパスワードの設定を聞かれますが空欄でも通ります。
.sshフォルダーへ移動、公開鍵のデータをcatで表示パイプでクリップボードにコピーする。
$ cat ~/.ssh/id_rsa.pub | pbcopy
次にgithubに再度アクセスし、settingsをクリック
SSH and GPG keysをクリック
以下の手順で赤丸のテキストボックスに貼り付け、この際titleは特に必要なければ空欄でも通ります。
次に、.sshのconfigに設定を追記する。
$ vi ~/.ssh/config
以下を末尾に追記します。
Host github.com
HostName github.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa
これでsshを用いてセキュアに接続ができます。
一括で初期設定を行うスクリプトを書きました。
初期設定スクリプト
#!/bin/zsh
/bin/echo "************************************************"
/bin/echo "Welcome to git-initset-script ver: 1.0"
/bin/echo "Caution! , this script support only macOS's zsh ."
/bin/echo "************************************************"
<<COMMENT_OUT
This scripts target shell is only zsh , so if you want to use script for bash , please regulation yourself .
for example .zshrc → .bashrc
- Attention notice
If you already setting .zshrc , this script remove your setting .
COMMENT_OUT
/bin/echo "+ Make .zshrc on home"
touch ~/.zshrc
cat ./settingfile > ~/.zshrc
/bin/echo "+ Make dir ~/.zsh/completion (add p option)"
mkdir -p ~/.zsh/completion/
/bin/echo "+ Download git-prompt.sh"
curl -LO https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
mv ./git-prompt.sh ~/.zsh/completion/
/bin/echo "+ Setting global user.name , user.email"
/bin/echo "+ Add whoami username to user.name"
/bin/echo "*********"
whoami
/bin/echo "*********"
# set whoami.
git config --global user.name `whoami`
/bin/echo "+ Please input setting email ."
/bin/echo "※You can use private email on github and any git cloud service's private email ."
/bin/echo -n "» "
read email
# set input email.
git config --global user.email $email
echo "Done , Please check any setting files yourself ."
echo "Start your happy Git life . 🍀 "
source ~/.zsh/completion/git-prompt.sh
setopt PROMPT_SUBST
PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
fpath=(~/.zsh/completion $fpath)
autoload -Uz compinit && compinit -i
これでGitを最低限快適に使うための準備ができました。
参考
git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
Discussion