はじめに
何度やってもなかなか慣れない環境構築のうちの一つで、 SourceTreeの接続で躓いたので毎度忘れてそれぞれ調べ忘れになることのないように行ったことのメモとして記事にしておきます。
発生時の状況
push時に出たエラー
git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags --set-upstream origin
Pushing to https://gitlab.~~~~~
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.~~~~~'
Completed with errors, see above
やったこと
-
SourceTreeの設定の確認
SourceTree内の設定 > 一般 から
デフォルトのユーザーユーザー情報が間違っていないこと(GitLabアカウントと一致している事?)を確認。
2. GitLab側の設定の確認
GitLab右上の自分のアイコンにカーソルを当てた時に表示されるユーザー名や、 settings > profile内の Emailなどが間違っていないかの確認や、settings > Passwardからパスワードの再設定。
3. pushしたいGitLabリポジトリ内に自分のユーザーが承認されているかの確認
4. SourceTree内のアカウント設定
SourceTreeの設定 > アカウント > 追加で アカウントを追加
- GitLabはホスト項目3種類あるので、確認する
- ホストの横に入力するURLはリポジトリのURL
- ユーザー名をGitLabで設定しているユーザー名に揃える
- Private Tokenには GitLabの自分のアイコンにカーソルを合わせ settings > Access Tokens で、トークンを作成する。
作成する際、入力する日付は特に指定がなければ未入力でも構わない。
Scopesの項目は一番上の「api」だけで基本的に問題ないが、必要であればチェックをいれる。
Your new personal access tokenを SourceTreeのPrivate Tokenに記入。 - 今回はHTTPSでの接続だったのでプロトコルはHTTPSに設定
5. Mac内のキーチェーンを再設定
MacのLaunchLaunchPadからキーチェーンアクセスを選択
GitLabアカウント名などで検索をかけてPC内で以前設定したパスワードなどを削除する
次回プッシュ時やアカウント接続時に「Passward Required」で再度設定し直す。
6. ↑の「Passward Required」設定時にユーザー名があっているか確認
「Passward Required」のダイアログ内のメッセージにユーザー名やホストが表示されるのでそれに間違いがないか確認する
間違っている場合は SourceTree右上の設定 > 高度な設定内の
グローバルユーザー設定を使うのチェックをはずし、名前・メールアドレスをGithabと同じものにする
また、高度な設定の左下のConfigファイルの編集で
[remote "origin"]
url = <ホスト先のURL>
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = https://<ユーザー名>:<パスワード>@<urlのhttps://より下>
これを入力して閉じる
これでpushに成功しました!
最後のものが決め手になったのは間違いないのですが、それ以外のものは実際どれが必要になるかはわかりません。
参考にする際は、順番に確認しながらやっていくことをお勧めします。
参考