0
2

複数のGitアカウントを使い分ける

Last updated at Posted at 2023-08-01

概要

SESで働いていたり副業で別の会社に所属したりしているとその先々でgitアカウントの作成を求められることがあります。PCはもちろん自前です。そうなると同じPCから別のgitアカウントでpushしたりしないといけません。当記事はその設定方法です。(*macで動作確認してます)

手順

ここから具体的な手順です。

  1. キーペアを作ってgithubに登録
  2. ~/.ssh/configに接続の設定を追加
  3. 疎通確認
  4. gitアカウントの切り替えコマンドを作成

キーペアを作ってgithubに登録

このステップはgithubに詳細があるのでそちらを参考にしてください。
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?platform=mac

ターミナルでssh接続するためのキーを作成します。
-fはファイル名を指定するオプションです。

$ ssh-keygen -f ~/.ssh/git_main

これで~/.sshフォルダ配下にgit_maingit_main.pubというファイルが生成されたと思います。
次に公開鍵をgithubに登録していきます。
まずは以下のコマンドで公開鍵の中身をクリップボードにコピーします

$ pbcopy < ~/.ssh/git_main.pub

コピーできたらgithubの画面に行きます。
アイコン > setting > SSH and GPC keys > New SSH key
image.png

スクリーンショット 2023-08-02 0.55.01.png
必要事項を入力したらAdd SSH keyをクリック。
これでssh keyの登録ができました。

~/.ssh/configに接続の設定を追加

ssh接続の情報を登録していきます。

$ vi ~/.ssh/config
# Gitメインアカウントのssh情報
Host github
  HostName github.com
  IdentityFile ~/.ssh/git_main
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

入力できたらesc > :wq で抜けます

疎通確認

# githubのところはconfigに設定したHostです。
$ ssh github
PTY allocation request failed on channel 0
Hi #{ユーザー名}! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
$

sshコマンドを打って上記のようなメッセージが表示されればssh接続成功です。

gitアカウントの切り替えコマンドを作成

$ vi ~/.bashrc
# gitアカウントを切り替える
function gitmain() {
  git config --global user.name "ユーザー名"
  git config --global user.email "メールアドレス"
  source ~/.bashrc
}

入力できたらesc > :wq で抜けます

$ source ~/.bashrc

編集を読み込みます。

これで作業は終了です。記事の中では1つのアカウントしか設定していませんが、これをアカウント分追加することでアカウントの切り替えが簡単にできます。
以下のコマンドを打つとgitアカウントが切り替わります。

$ gitmain # functionに設定した関数名です

アカウントが切り替わったかは以下のコマンドで確認してください。

$ git config user.name
$ git confit user.email

追記 2023/9/27

cloneコマンド

$ git clone {設定したHost}:リポジトリURL

最後に

間違っている箇所を見つけたり、わからない箇所がありましたらコメントください。
僕の勤めている会社です。ご興味あれば是非。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2