search
LoginSignup
314

More than 5 years have passed since last update.

posted at

updated at

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

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つ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
314