─[$] 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
今度は、ブラウザで資格情報を見つける必要がないように、git資格情報をgithub、gitlab、gitoriousに入れたいと思います。これをどのように自動化できますか?
zshを実行しています。
ベストアンサー1
SSHの使用
git認証を処理する一般的な方法はSSHに委任することです。通常、リモートストレージ(例えば GitHubから)認証が必要なときはいつでも使用してください。もちろん、キーエージェントを使用したり、デスクトップ環境で処理したり、ssh-agent
手動で使用して処理したりできますssh-add
。
ユーザー名を指定したくない場合は、SSHで構成することもできます。~/.ssh/config
たとえば、次のようになります。
Host git.opendaylight.org
User skitt
その後、次のように複製できます。
git clone ssh://git.opendaylight.org:29418/aaa
(ここにはユーザー名はありません。)
使用gitcredentials
SSH方式を適用できない場合(例えばHTTPS経由でアクセスされるリポジトリを使用している場合)gitには資格情報を処理する独自の方法があります。gitcredentials
(そして一般的にgit-credential-store
)。以下を使用してユーザー名を指定します。
git config credential.${remote}.username yourusername
資格情報ヘルパーで使用
git config credential.helper store
(--global
この設定をどこでも使用する場合は指定してください)。
その後、初めてリポジトリにアクセスすると、gitはパスワードを要求して保存します(デフォルトでは~/.git-credentials
)。その後、リポジトリにアクセスすると、ユーザーに尋ねるのではなく、保存されたパスワードを使用します。
警告する:資格情報をホームディレクトリにプレーンテキストとして保存します。したがって、これが意味するものを理解し、リスクに快適でない限り、お勧めできません。