はじめに
とあるrepositoryにsubmoduleを複数使っていて、
git submodule update
をしたかったのですが
以下の2つで困ったのでメモ
- 毎回パスワードを聞かれる
- ID/pass入力で
fatal: Authentication failed
してしまう
アジェンダ
- 起こったこと
- 対応したこと
1. 起こったこと
冒頭に記載したまんまですが、
- 毎回パスワードを聞かれる
- ID/pass入力で
fatal: Authentication failed
してしまう
が起こっていました。
このときの状態
このときの状態は以下のようになっていました。
$ vim .gitmodules -- vi -- [submodule "template/a"] path = template/a url = https://github.com/hoge/template-a.git [submodule "template/b"] path = template/b url = https://github.com/hoge/template-b.git [submodule "template/c"] path = template/c url = https://github.com/hoge/template-c.git --------
実行したとき
3回ID/passが聞かれた上にfailedしました。
$ git submodule update Cloning into '/Users/tweeeety/github/any-repos/template/a'... Username for 'https://github.com': tweeeety Password for 'https://tweeeety@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/hoge/template-a.git/' fatal: clone of 'https://github.com/hoge/template-a.git' into submodule path '/users/tweeeety/github/mercari/any-repos/template/a' failed failed to clone 'template/a'. Retry scheduled Cloning into '/Users/tweeeety/github/mercari/any-repos/template/a'... ~ 省略 ~
2. 対応したこと
対応としては.gitmodules
のurl指定をhttps指定からssh指定に変えました。
こんな感じですね
$ git diff .gitmodules --- a/.gitmodules +++ b/.gitmodules [submodule "template/a"] path = template/a - url = https://github.com/hoge/template-a.git + url = git@github.com:hoge/template-a.git [submodule "template/b"] path = template/b - url = https://github.com/hoge/template-b.git + url = git@github.com:hoge/template-b.git [submodule "template/c"] path = template/c - url = https://github.com/hoge/template-c.git + url = git@github.com:hoge/template-c.git
.git/config
内のsubmoduleの向き先は
この時点では変わらないので以下を実行します
$ git submodule sync
で、実行してみるとうまくいきましたとさ
$ git submodule update Cloning into '/Users/tweeeety/github/any-repos/template/a'... Cloning into '/Users/tweeeety/github/any-repos/template/b'... Cloning into '/Users/tweeeety/github/any-repos/template/c'... Submodule path 'template/a': checked out 'xxxxxxxxxxae935311265746382d1b54b4e2ab0f' Submodule path 'template/b': checked out 'xxxxxxxxxx2b91a43b8a318f491348aa62b5306f' Submodule path 'template/c': checked out 'xxxxxxxxxxa378276a71869ef3a63cdb3bb7b2c9'
おわり
httpsだとなんでダメなんや...
というところはあやふやにしてしまいましたが、
一旦次行きたいのでメモのみで!!\(^o^)/