メモ:Sourcetreeでプッシュできないエラーと闘う

Yaz
·
公開:2024/5/26

PC変えたりする度、久々に使う度、しょっちゅう詰んでる気がする。本当に嫌い……

📝メモ

以前、秘密鍵/公開鍵の設定が出来ていてSSH接続できてそうなのに何故か認証関係で詰んだ時に助けてくれた記事: https://kantaro-cgi.com/blog/git/bitbucket-permission-error.html

ある程度自分で調べた後↑の方法や過去に解決できたあれこれを試してもダメで詰んだのでエラーメッセージごとChatGPTに投げた時のログ

●わたし

gitクライアントのSourcetreeで以下のようなエラーメッセージが出ました。どのように対処すれば良いですか?

# エラーメッセージ

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v origin master:master

remote: Invalid credentials

fatal: Authentication failed for 'https://bitbucket.org/{ユーザー名}/modelingdata.git/'

Pushing to https://bitbucket.org/{ユーザー名}/modelingdata.git

エラー終了しました。エラーの内容は上記をご覧ください。

●GPTの回答

このエラーメッセージは、認証に関する問題が発生していることを示しています。Bitbucketのリポジトリにプッシュする際に、無効な認証情報が提供されたため、認証が失敗しました。

この問題を解決するためには、以下の手順を試してみてください。

  1. 認証情報を確認: Sourcetreeが正しいBitbucketの認証情報を使っていることを確認します。アカウント名とパスワード、またはSSHキーが正しく設定されているか確認してください。

  2. 認証方法の変更: 認証情報を更新してみてください。Bitbucketのアカウント設定でアクセスキーを生成し、それを使ってHTTPS認証を試してみることもできます。

  3. SSHを使用する: SSHキーを生成し、Bitbucketに登録してSSH経由で認証する方法もあります。これはHTTPSよりもセキュアであり、Sourcetreeでもサポートされています。

  4. キャッシュのクリア: 一時的な問題である可能性もありますので、一度Sourcetreeのキャッシュをクリアしてみてください。

  5. Bitbucketの状態を確認: Bitbucket自体がダウンしているか、またはメンテナンス中である可能性もあります。Bitbucketのステータスページや公式サポートを確認してみてください。

これらの手順を試しても問題が解決しない場合は、詳細を調査するためにエラーメッセージのコンテキストを確認し、Bitbucketのサポートに連絡してサポートを受けることも検討してください。

上記アドバイスを受けて今回の場合は1~3は実施済み。4を試したかったので更に聞いた。

●わたし

キャッシュクリアはどのようにすればいいですか?

●GPTの回答

Sourcetreeのキャッシュをクリアする方法は、お使いのオペレーティングシステムによって異なります。一般的な手順は次の通りです。

Windowsの場合:

  1. Sourcetreeを閉じます。

  2. Windowsのファイルエクスプローラーを開きます。

  3. 以下のパスに移動します。

    %LocalAppData%\Atlassian\Sourcetree

  4. ディレクトリ内の "Local Settings" フォルダーを削除します。

当該パスの指すフォルダにLocal Settingsは無くて、キャッシュ関係の他の情報も調べつつパスワードの認証が上手くいってない可能性に当たりこの辺を見ながら当該フォルダの「passwd」ファイルを消してみる。

と、進展があった。

プッシュ時にパスワードを聞かれたのでBitbucket側で設定したアプリパスワードを改めて入力。認証が通った。

.

容量超過に対するエラーメッセージ

せっかく進展あったのにまた違うエラーメッセージ出ちゃって何言ってんのか分からず読むのも嫌で再びGPTに投げた。

●わたし

更に以下のようなエラーメッセージが出ました。何が問題ですか?

# エラーメッセージ

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v origin master:master

POST git-receive-pack (chunked)

remote: Your push has been blocked because it includes at least one file that is 100 MB or larger. Bitbucket Cloud recommends using Git LFS for large files to prevent repositories from growing too large and reaching the 4 GB repo size limit. Learn more about Git LFS at https://support.atlassian.com/bitbucket-cloud/docs/manage-large-files-with-git-large-file-storage-lfs/. If necessary, the file size limit can be disabled by an admin in Repository settings. Learn more at https://support.atlassian.com/bitbucket-cloud/docs/reduce-repository-size/#Avoid-adding-large-files.

Pushing to https://bitbucket.org/{ユーザー名}/modelingdata.git

To https://bitbucket.org/{ユーザー名}/modelingdata.git

! [remote rejected] master -> master (pre-receive hook declined)

error: failed to push some refs to 'https://bitbucket.org/{ユーザー名}/modelingdata.git'

●GPTの回答

このエラーメッセージは、プッシュしようとしているリポジトリに含まれる少なくとも1つのファイルが100 MB以上であるため、プッシュがブロックされたことを示しています。Bitbucket Cloudでは、リポジトリが大きくなりすぎて4 GBのリポジトリサイズ制限に達する可能性があるため、大きなファイルにはGit LFS(Large File Storage)を使用することが推奨されています。

これを解決するためには、次のいずれかの方法を検討できます:

  1. Git LFSの使用: 大きなファイルをGit LFSで管理することを検討してください。これにより、大きなファイルがリポジトリサイズに対して適切に管理されます。

  2. ファイルサイズの削減: 大きなファイルを分割し、より小さいファイルに分割することを検討してください。または、ファイルサイズが100 MB未満になるように内容を最適化することもできます。

  3. リポジトリ設定の変更: Bitbucketのリポジトリ設定で、管理者がファイルサイズ制限を無効にすることもできます。ただし、これによりリポジトリが非常に大きくなる可能性があるため、慎重に検討してください。

  4. プッシュするファイルを調整する: 100 MB以上のファイルを含まないように、プッシュするファイルを調整してください。

これらのアプローチのいずれかを選択して、問題を解決してください。

なるほど、マジで助かる。解説ありがとう。

●わたし

3の方法を試したいです。どのような手順でファイルサイズ制限を無効にできるか教えてください

●GPTの回答

Bitbucketでリポジトリのファイルサイズ制限を無効にするには、次の手順に従います。

  1. Bitbucketのウェブサイトにログインします。

  2. リポジトリのページに移動します。

  3. ページ上部のメニューで、「Settings(設定)」をクリックします。

  4. ページ左側のナビゲーションメニューで、「Repository details(リポジトリの詳細)」を選択します。

  5. 「Repository details」ページの下部にスクロールし、「Repository details(リポジトリの詳細)」セクションを見つけます。

  6. 「Repository size limit(リポジトリのサイズ制限)」の横にあるチェックボックスをオフにします。

  7. 変更を保存するために、ページの下部にある「Save repository details(リポジトリの詳細を保存)」ボタンをクリックします。

これで、リポジトリのファイルサイズ制限が無効になります。ただし、この設定を行う前に、リポジトリサイズが制限を超える可能性があることを理解し、適切な措置を講じることが重要です。大きなファイルの管理にはGit LFSの使用を検討することも重要です。

参考にしつつBitbucket側で設定変更したら無事にプッシュできた。

GPTくん、やるな。ありがとう。

つかれた…

@yaz
二次創作するオタク。いま令和悪魔くんにお熱┊100字以上のコメント送信はウェブボ👋から