Gitを日常的に使用している皆さんは、複数のアカウントをどのように管理されていますか?
個人アカウントと仕事用アカウントを使い分けている方も多いと思います。とはいえ、アカウントの切り替えや管理は煩雑で、手間がかかることもあります。そこで、この記事では ghq
を活用してGitリポジトリを効率的に整理し、SSHを用いたアカウント設定で複数アカウントをスムーズに運用する方法をご紹介します。複数アカウントの手動切り替えが不要になり、作業が快適になるはずです。
今回は、個人用と仕事用の2つのアカウントを使うケースを例に説明します。
ghqとは?
ghq
は、リモートリポジトリを効率的に管理するためのCLIツールで、このツールを使うと、リポジトリのクローンが指定したルートディレクトリ内に自動的に整理されます。たとえば、以下のようにコマンドを実行するだけで、リポジトリを手軽に管理できます。
デフォルトでは、リポジトリは ~/ghq
にクローンされます。手動でディレクトリを整理する必要がなくなり、複数のリポジトリを一元管理できます。 ghq
を使えば、Git管理が一段とスムーズになります。
さらに詳細な情報は こちら を確認してください。
複数アカウントを管理するSSH設定
次に、Gitの複数アカウントを使い分けるために、SSHの設定を行います。
個人アカウント用SSH設定
まず、 ~/.ssh
ディレクトリに personal_config
という設定ファイルを作成し、個人アカウント用の接続情報を記載します。
Host
にはわかりやすい名前を設定します。ここでは「personal.github.com」としていますが、自由に設定可能です。
- Host : 自分でわかりやすい名前を設定します。
-
HostName : 実際に接続するホスト、GitHubの場合は
github.com
です。 - IdentityFile : 個人用の秘密鍵を指定します。
仕事用アカウントのSSH設定
同様に、 work_config
というファイルを作成し、仕事用アカウントの接続設定を記載します。
SSH設定ファイルを統合する
最後に、 ~/.ssh/config
ファイルに Include
を使って、作成した設定ファイルを読み込ませます。
これで、個人と仕事のSSH設定が完了です。
Gitの設定
SSH設定が整ったら、Gitでもアカウントを使い分けられるようにします。ここでは、リポジトリごとに異なるアカウント設定を自動的に適用する方法を紹介します
個人アカウントのGit設定
まず、個人アカウントの設定を作成します。 {アカウント名}
の箇所は自身のアカウント名に差し替えてください。
~/.config/git/personal/ifconfig
の作成
- name : コミット時に使用する名前。
- email : コミット時に使用するメールアドレス。GitHubのnoreplyアドレスを使うことで、プライバシーを保護できます。
~/.config/git/personal/config
の作成
次に、リポジトリのURLに基づいて接続先をSSHに切り替える設定を行います。
urlセクションでは insteadOf と pushInsteadOf で指定したURLを使用した時に、自動的にSSH設定で定義した Host
名(personal.github.com)を使用しSSHで接続するように設定しています。
includeIfセクション では remote.*.url に指定した設定があった場合に ~/.config/git/personal/ifconfig
を読み込むことで当該アカウントの場合のみそのユーザ情報が使用されるようにしています。
insteadOf や includeIf を複数記述しているのはクローンする際にどの形式のリンクを使用しても対応できるようにするためです。
仕事アカウントのGit設定
仕事アカウント用の設定も同様の手順で作成します。
最後に
この記事で紹介した方法を使えば、個人と仕事用のアカウントをスムーズに使い分けられ、リポジトリの管理も格段に効率化できます。これからは、複数アカウントを気にせず、快適にGitを活用しましょう!