Githubへのpushでusername/passwordを省略する方法2つ
2015.3.14 追記
"鍵でやるべき"とブックマークコメントをもらいましたが、その通りです。SSH認証キーが設定できる環境なら鍵認証でやるべきです。鍵ペアを作成後に公開鍵をGithubに登録し、~/.ssh/configで以下のように設定しましょう。
Host github.com User git Hostname github.com IdentityFile ~/.ssh/{秘密鍵}
SSH認証キーが設定できないような環境では、本記事を参考にしてください。
追記終わり
Githubへpushするたびにユーザ名(Emailアドレス)/パスワードを聞かれて入力するのは面倒なので、省略したい。
MacとLinuxで確認しました。
1. ~/.netrc にユーザ名/パスワードを書く
こんな感じで自分の$HOME直下に.netrcファイルを作成する。
machine github.com login syokenz password xxxxxxx
もし、後述する2つ目の方法でURLにユーザ名を埋め込んでいた場合、パスワードを聞かれるので注意。その場合、何も入力せずにリターンすれば、~/.netrcの設定を見てくれる。
2. git cloneするURLに埋め込む
こんな感じ。
git clone https://username:password@github.com/syokenz/sandbox.git
ただし、username・passwordのどちらかに@が入っていたらproxy認証でエラーとなった。&は\でエスケープできたけど、@はダメだった。他にも使えない記号があるかもしれない。
2015.3.14 追記
icoxfog417さんにコメントで教えてもらいました。@は、%40 (エンコードした値)を使えば通るようです。
追記終わり
clone済のリポジトリの設定を変更するには以下のファイルを変更する。
{cloneしたリポジトリDir}/.git/config