─[$] cat ~/.gitconfig
[user]
name = Shirish Agarwal
email = [email protected]
[core]
editor = leafpad
excludesfiles = /home/shirish/.gitignore
gitproxy = \"ssh\" for gitorious.org
[merge]
tool = meld
[Push]
default = simple
[color]
ui = true
status = auto
branch = auto
ここで、github、gitlab、およびgitoriousのgit資格情報を入れたいので、毎回ブラウザーで資格情報を検索する必要はありません。これを自動化するにはどうすればよいですか?
私はzshを実行しています
Git認証を処理するための一般的なアプローチは、それをSSHに委任することです。通常、リモートリポジトリでSSH公開鍵を設定します(egon GitHub )。その後、必要なときにいつでもそれを使用します認証する。もちろん、デスクトップ環境で処理するか、ssh-agent
およびssh-add
。
ユーザー名を指定する必要がないようにするには、SSHでも~/.ssh/config
;たとえば私は持っています
Host git.opendaylight.org
User skitt
そして、私は使用してクローンを作成できます
git clone ssh://git.opendaylight.org:29418/aaa
(そこにユーザー名がないことに注意してください)。
gitcredentials
の使用SSHアプローチが適用されない場合(egHTTPS経由でアクセスされるリポジトリを使用している)、gitは資格情報を処理する独自の方法を持っています。 gitcredentials
(通常は git-credential-store
)。を使用してユーザー名を指定します
git config credential.${remote}.username yourusername
と資格情報ヘルパーを使用して
git config credential.helper store
(--global
この設定をどこでも使用する場合)。
次に、初めてリポジトリにアクセスすると、gitがパスワードを要求し、それが保存されます(デフォルトでは~/.git-credentials
)。その後のリポジトリへのアクセスでは、ユーザーに確認する代わりに、保存されているパスワードを使用します。
後でこれを見つけた人のために-私はこれで問題があり、最終的にそれを機能させました
https/credentials.helper/Ubuntu
git config --global --unset credentials.helper
git config --unset credential.helper
各リポジトリの認証情報ファイルを作成します:(各リポジトリ内)
git config credential.helper 'store --file ~/.git_reponame_credentials'
それが最善の方法または唯一の方法であると言っているわけではありません-しかし、それは数時間の苛立たしい時間の後に私にとってはうまくいきました。