1. Qiita
  2. 投稿
  3. GitHub

GitHubでユーザ名・パスワード省略(push, pull)

  • 81
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Amazon Linux (AWS - EC2)で確認しました。

ユーザ名のみ省略する方法

1. clone済のリポジトリの設定を変更する場合

{cloneしたリポジトリDir}/.git/configを編集します。

[remote "origin"]項目のurlusername@を追加する。

.git/config
[remote "origin"]
  url = https://username@github.com/username/repository.git

2. git cloneするURLに埋め込む(新規でcloneする場合)

git clone https://username@github.com/username/repository.git

ユーザ名・パスワード両方省略する方法

1. ~/.netrcにユーザ名/パスワードを書く

~/.netrc
machine github.com
login username
password xxxxxxx

2. urlusername:password@を追加

{cloneしたリポジトリDir}/.git/configを編集します。

[remote "origin"]項目のurlusername:password@を追加する。

.git/config
[remote "origin"]
  url = https://username:password@github.com/username/repository.git

usernamepassword@が含まれている場合は、%40 (エンコードした値)を使えば通るようです。
他の記号(&など)は\でエスケープできるようです。

※セキュリティ的に心配なのでこちらの方法は試してません。どちらの方法にしても、ファイルに生のパスワードを書かないといけないので、セキュリティ上やらないほうがいいと思います。
特に、2番めのURLにパスワードを追加する方法は、HTTPSとは言えURLにパスワードが含まれてしまうので、パスワードを生でインターネット上に送信しているようなものなんじゃないかと思います。

設定の優先度

両方設定した場合、~/.netrcの設定が優先されます。

優先度としては、~/.netrc > .git/configという感じのようです。

例えば、

  • ユーザ名のみの設定(.git/config
.git/config
[remote "origin"]
  url = https://username@github.com/username/repository.git

  • ユーザ名・パスワードの設定(~/.netrc
~/.netrc
machine github.com
login username
password xxxxxxx

の両方を設定した場合、ユーザ名・パスワード両方省略されました。

参考URL

Githubへのpushでusername/passwordを省略する方法2つ