Gitのローカルユーザー設定を自動化しようの巻

どうも音又です。
今回はGitのローカルユーザーの設定を自動化する手順を解説していこうと思います。

この記事ではGitやターミナルの使い方についてある程度理解がある前提で進める為、わからない方はあらかじめ把握しておいてください

スポンサーリンク

Gitのローカルユーザーの設定方法

まずGitのユーザー設定の方法ですが、ローカルユーザーの場合は以下のようなコマンドを使用します。

# ユーザー名の設定
git config user.name "Your Name"

# メールアドレスの設定
git config user.email "your_email@example.com"

これらのコマンドを実行することでコミットで表示されるユーザー名やメールアドレスが設定したものになります。
もちろんこれらを毎回入力してもよいのですが、開発していると割としょっちゅう入力するコマンドなので結構めんどくさくなってきます。

そんな面倒を少しでも減らすために自動化してみましょう。

ユーザー設定について

まずユーザー設定についてですが、Git自体ローカルユーザーの他にグローバルユーザー設定が存在します。
グローバルユーザーの場合、各リポジトリでユーザー設定をしなくても自動的にグローバルユーザーで設定してる情報が使用される為、それでも問題ない人は今回紹介する設定は特になくても良いかと思います。

ただ以下記事のようにGitHubなどを複数アカウントで管理している場合は例えば本名でユーザー名を設定していると「このアカウントではいいけどこっちのアカウントでは本名で表示されるとちょっと…」というケースも出てくるかと思います。

その場合はグローバルユーザー設定をせずに、ローカルユーザー設定を毎回した方が安全に運用できます。

というわけでグローバルユーザー設定がされているか確認してみましょう。以下のコマンドで確認できます。

git config --global --list

コマンドを実行して何も表示されなければグローバル設定がされていません。
もしユーザー情報が表示される場合はグローバルユーザーの設定を初期化しましょう。以下のコマンドで初期化します。

# ユーザー名の初期化
git config --global --unset user.name

# メールアドレスの初期化
git config --global --unset user.email

初期化をしたら改めてgit config --global --listを実行してみましょう。何も表示されなければ初期化の完了です。

ローカルユーザー設定の自動化手順

ではローカルユーザー設定を自動化していきましょう。
自動化と言ってもユーザー設定用のシェルスクリプトを設定してそれをどこでも実行出来るようにするだけです。

シェルスクリプトの作成

まずローカルユーザーの設定時に使用するコマンドを実行するシェルスクリプトを作成します。
作成する場所やファイル名は何でもよいですが、今回は~/bingit_local_user.shという名前で保存することにします。
以下のようなコマンドでエディターを開きます。

nano ~/bin/git_local_user.sh


エディターが開いたら以下の内容を記述します。

#!/bin/bash

echo "Gitのローカルユーザー設定を行います。"

# 01
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
  echo "エラー: このディレクトリはGitリポジトリではありません。"
  exit 1
fi

# 02
echo "ローカルユーザーの名前を設定しています。"
git config user.name "Your Name"

# 03
echo "ローカルユーザーのメールアドレスを設定しています。"
git config user.email "your_email@example.com"

echo "設定が完了しました。"

ここでは特記事項を解説していきます。

# 01では実行しているディレクトリがGitリポジトリか確認しています。Gitリポジトリでない場合は処理を中断します。

# 02# 03ではそれぞれユーザー名とメールアドレスを設定しています。

その他echo ...はスクリプト実行時にメッセージを表示するために記述しています。

記述出来たらctrl + Xで保存します。

シェルスクリプトを簡単に使えるようにする

先ほど作成したシェルスクリプトを使用するには以下のように指定して使用することができます。

bash ~/bin/git_local_user

ただ毎回ディレクトリまで指定して使用するのはちょっと面倒ですよね。

そこでこのスクリプトにパスを通してどこでも簡単に使えるようにしてみましょう。
まず作成したシェルスクリプトの権限設定を変更します。以下のコマンドで設定します。

chmod +x ~/bin/git_local_user.sh

権限を設定しないとせっかくパスを通しても権限エラーが発生してしまいます。

次にパスを通します。ターミナルがzshなら~/.zshrcを、bashなら~/.bashrcに以下の記述を追加します。

export PATH="$HOME/bin:$PATH"

記述できたら以下のコマンドで設定を再読み込みします。

sourc ~/.zshrc # もしくは ~/.bashrc

設定出来たら実際に設定したいリポジトリに移動して以下のようにスクリプトを実行してみましょう。

# git_local_user
Gitのローカルユーザー設定を行います。
ローカルユーザーの名前を設定しています。
ローカルユーザーのメールアドレスを設定しています。
設定が完了しました。

上記のようなログになれば成功です。
エラーが出るかも試して見ましょう。Gitリポジトリじゃないディレクトリに移動して実行してみます。

Gitのローカルユーザー設定を行います。
エラー: このディレクトリはGitリポジトリではありません。

上記のようなログになればエラーハンドリングを正常に動作しています。

使い分けについて

これでひとまず自動化の手順は終わりです。
その他複数のユーザー設定を使い分けたい場合はシェルスクリプトのユーザー名とメールアドレス部分を対応するものに書き換え別名で保存すればOKです。

GitHub等で複数アカウントとのやり取りを行う方法は以下の記事でも紹介していますので、ぜひ参考にしてみてください。

SSH接続の設定については以下記事も参考になるかと思います。

おわり

ということで今回はGitのローカルユーザー設定を自動化する手順を紹介しました。
シェルスクリプトはこのように毎回使うようなコマンドの流れを自動化することができるので、他の作業用にも使ってみると良いかと思います。
では今回はこの辺で。

コメント

タイトルとURLをコピーしました