ねこじゃすり
猫を魅了する魔法の装備品!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
仕事用とプライベート用を切り替えたい
誤コミットを防ぐのが目的
皆さんはGithubを使っているでしょうか?
筆者ももちろん利用しているのですが、仕事用の有料アカウントとプライベート勉強用の無料アカウントの二つを持っているのですが、間違えてコミットなどをしたくないのでうまく使い分ける方法を探していたのですが、先日良さげな方法を見つけたので今回はそのやり方をご紹介しようと思います♪
規約的に複数アカウントは問題無し
その前に、Githubのアカウントを一人が複数持つ事が規約違反という記事をよく目にしますが、正しくは無料アカウントを複数持つ事が禁止されています。
無料の「アカウント」を複数持つことはできません。 GitHub利用規約 – GitHub Docs
筆者の場合は、仕事用は有料、プライベート勉強用は無料なので特に利用規約に違反していないと思っております!笑
手順
sshのconfigの設定
まず、今回は以下の設定を.ssh/config
に記述してみます。
1 2 3 4 5 6 7 8 9 |
Host github-work HostName github.com IdentityFile ~/.ssh/github-work user git Host github-private HostName github.com IdentityFile ~/.ssh/github-private user git |
また、それぞれのアカウントでGithubへの公開鍵登録及び疎通確認はしている事とします。
確認
では、それぞれの認証情報を使ってssh -T {名称}
コマンドでGithubに接続が出来るか確認してみましょう。
1 2 3 4 5 |
ssh -T github-work Hi github-work! You've successfully authenticated, but GitHub does not provide shell access. ssh -T github-private Hi github-private! You've successfully authenticated, but GitHub does not provide shell access. |
正常に接続時のユーザーが区別出来ていますね♪
git configの削除
次に作業をする前にGitのグローバル設定を確認してみましょう。
git config --global --list
を実行して現在の設定を確認してみます。
1 2 |
user.name=github-work user.email=XXX@gmail.com |
上記のようにuser
周りの設定がグローバル設定されている場合、未指定の場合にデフォルトでこのユーザーが利用されてしまうのでgit config --global --unset {キー名}
で削除しておきましょう。
クローン方法
例えば、github-workアカウントがアクセス可能で、github-privateアカウントがアクセス出来ないリポジトリがあった場合に、それぞれsshでクローンしようとしてみましょう。
コマンドはgit clone git@{config名}:{Githubアカウント名}/{リポジトリ名}.git
となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
git clone git@github-work/YYY.git Cloning into 'YYY'... remote: Enumerating objects: 585, done. remote: Total 585 (delta 0), reused 0 (delta 0), pack-reused 585 Receiving objects: 100% (585/585), 286.63 KiB | 406.00 KiB/s, done. Resolving deltas: 100% (268/268), done. git clone git@github-private:XXX/YYY.git Cloning into 'YYY'... ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. |
このようにそれぞれ正しく指定した認証情報が使われているので、リポジトリへのアクセス権限も問題ないですね♪
この状態でクローンしたディレクトリに移動し以下のコマンドをすると、正常にremote URLに使用したユーザー情報がセットされているのが確認出来ます。
1 2 3 4 5 6 7 8 9 10 11 |
credential.helper=osxkeychain core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true core.precomposeunicode=true remote.origin.url=git@github-work:XXX/YYY.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master |
終わりに
以上のように、簡単にGithubへの接続情報を切り替える事が可能になりました♪
複数アカウントを使い分けてる方は少なくないと思うので、気になった方はぜひ試してみてはいかがでしょうか♪