Git入門

4 min read読了の目安(約4200字

Git入門

Gitを改めてしっかり学び直しているメモ。

環境

  • macOS Bigsur
  • git version 2.24.3 (Apple Git-128)

目標

  • ブランチ名をプロンプトに表示したい
  • tab補完をしたい
  • 各種設定を一発で行いたい

macOSの標準shellは最近はzshになったので、zshの設定ファイル等を作る必要あり。

以下の設定内容はプロンプトにブランチ名等を表示するためのもの
.zshrcをホームディレクトリに作成

terminal
touch ~/.zshrc

以下の設定を.zshrcに書き込む

settingfile
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をダウンロード

terminal
$ 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のユーザー名にしてみる

terminal
$ git config --global user.name `whoami`

ちなみに、user.emailは普段使っているメールアドレス等を使用したくない場合、github等にあるprivate emailを使うのも一つの手である。

githubでの例

アカウントにログインもしくは新規作成する。

settingsをクリック

Emailsをクリック

Keep my email address privateのチェックボックスをクリックし、提示されるemailをコピーしておく

以下を実行する([youremailinfo]は適宜読み替えてください)

terminal
$ git config --global user.email [youremailinfo]@users.noreply.github.com

次にrsa公開鍵をgithubに登録する。
これで、ssh経由でのクローンができたりする。

まず、以下を実行

terminal
$ ssh-keygen

必要事項を入力してrsa暗号ファイルを生成する
※途中でパスワードの設定を聞かれますが空欄でも通ります。

.sshフォルダーへ移動、公開鍵のデータをcatで表示パイプでクリップボードにコピーする。

terminal
$ cat ~/.ssh/id_rsa.pub | pbcopy

次にgithubに再度アクセスし、settingsをクリック

SSH and GPG keysをクリック

以下の手順で赤丸のテキストボックスに貼り付け、この際titleは特に必要なければ空欄でも通ります。

次に、.sshのconfigに設定を追記する。

terminal
$ vi ~/.ssh/config

以下を末尾に追記します。

config
Host github.com
    HostName github.com
        Port 22
        User git
        IdentityFile ~/.ssh/id_rsa

これでsshを用いてセキュアに接続ができます。

一括で初期設定を行うスクリプトを書きました。

初期設定スクリプト

git_initset_script.sh
#!/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 . 🍀 "
settingfile
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