Ubuntu 18.04で2つのgithubアカウントを使用しようとしています。 PAT(Personal Access Token)も使用します。私が達成したい設定に従います。
- 2つのgithubアカウントが必要です - デフォルトアカウントであり、同じコンピュータで作業します。
- このディレクトリ内に作成されたすべてのリポジトリは、ジョブ名と
~/work/
電子メールを使用して自動的に送信する必要があり、このディレクトリ外のすべてのリポジトリはマスター名と電子メールを使用して送信する必要があります。 - ローカルからgithubにデータをプッシュするには、libresecretを使用して両方のアカウント(デフォルトとタスク)のプライベートアクセストークンを覚えておいてください。
- SSHの代わりにプライベートアクセストークンを使用してください。
- ストレージではなくアカウントごとに資格情報を保存します
useHttpPath
。
これが私がすることです。
ステップ1:Githubマスターアカウントを追加する
$ git config --global user.name "Johnny"
$ git config --global user.email [email protected]
$ sudo apt install libsecret-1-0 libsecret-1-dev
$ cd /usr/share/doc/git/contrib/credential/libsecret/
$ sudo make
$ git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
上記の方法を使用すると、ユーザー名とパスワードを繰り返し入力しなくても、デフォルトのgithubアカウントにコードをプッシュできます。一度だけ入力すると、libsecretが代わりになります。
~/.gitconfig
この時点まで。
[user]
name = Johnny
email = [email protected]
[credential]
helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
ステップ2:職場アカウントを追加する
~/work/
ディレクトリ内のすべてのリポジトリを2番目のgithubアカウントに関連付けたいと思います。私は次のように変更します -
グローバル構成~/.gitconfig
[user]
name = Johnny
email = [email protected]
[credential]
helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
[includeIf "gitdir:~/work/"]
path = ~/work/.gitconfig
ジョブ固有の構成~/work/.gitconfig
[user]
name = John Doe
email = [email protected]
作業コードをプッシュしようとすると、次のエラーが発生します。
remote: Permission to work_username/mywork.git denied to main_username.
fatal: unable to access 'https://github.com/work_username/mywork.git/': The requested URL returned error: 403
同じホストで実行されている複数のストレージの資格情報管理を分割することで、この問題を解決しました。
$ git config --global credential.github.com.useHttpPath true
最終~/.gitconfig
:
[user]
name = Johnny
email = [email protected]
[credential]
helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
[includeIf "gitdir:~/work/"]
path = ~/work/.gitconfig
[credential "github.com"]
useHttpPath = true
質問
問題は、私が作成するすべての新しいリポジトリにユーザー名とパスワードを設定する必要があることです。記事には、毎回パスワードを入力しなくても使用できると書かれています。
リポジトリがあるディレクトリによっては、認証に別のパスワードを使用しているかどうかを知ることlibsecret
ができますか?git
これはすでに使用されているコミット名/電子メールで発生していますIncludeIf
。また、これを何とかパスワード認証に拡張したいと思います。