Databricks Git フォルダーのエラーのトラブルシューティング
このページでは、Databricks GitフォルダーをリモートGitプロバイダーで使用する際に発生する一般的なエラーや予期しない動作について、原因をより迅速に特定できるようカテゴリ別にまとめて説明します。ここに記載されているガイダンスのいずれも問題が解決しない場合は、 「ヘルプ」を参照してください。
認証エラー
これらのエラーは、DatabricksがリモートのGitプロバイダーでユーザーの身元を確認できない場合に発生します。
Invalid credentials
次の操作を試してください。
-
Git 統合設定 ( 設定 > リンクされたアカウント ) が正しいことを確認します。Git プロバイダーのユーザー名とトークンの両方を入力する必要があります。
-
[設定] > [リンクされたアカウント]で正しい Git プロバイダーを選択したことを確認します。
-
パーソナルアクセストークンまたはアプリのパスワードに正しいリポジトリ アクセス権があることを確認してください。
-
Git プロバイダーで SSO が有効になっている場合は、SSO 用のトークンを承認します。
-
Git コマンドラインでトークンをテストします。 山括弧内のテキスト文字列を置き換えます。
Bashgit clone https://<username>:<personal-access-token>@github.com/<org>/<repo-name>.git
SSL接続エラー
<link>: Secure connection to <link> could not be established because of SSL problems
このエラーは、DatabricksがHTTPS経由でGitサーバーに接続できない場合に発生します。これは通常、組織のGitインフラストラクチャにおけるネットワーク接続の問題、またはTLS証明書の問題を示しています。
Databricksのアカウントチームに連絡する前に、以下の情報を準備しておいてください。
- GitサーバーのURL
- サーバーが自己署名証明書またはプライベートCA証明書を使用しているかどうか
- 同じワークスペース内の他のユーザーも同じエラーを目にするかどうか
リポジトリの状態エラー
これらのエラーは、ローカルのGitフォルダが正常な操作を妨げる状態になった場合に発生します。
分離したヘッド状態
Gitでは、「head」とはコミット履歴における現在の位置を指し、通常はブランチを指します。ヘッドがブランチではなく特定のコミットを直接指している場合、リポジトリは「デタッチドヘッド」状態にある。Git はこの状態で行われた変更をどのブランチでも追跡しません。新しいブランチを作成せずに別のページに移動すると、変更内容が失われる可能性があります。
Gitフォルダは、以下の条件を満たす場合にデタッチドヘッド状態になります。
- 誰かがリモートブランチを削除した。Databricksは、コミットされていないローカルの変更をデフォルトブランチに適用することで、それらを復元しようとします。競合する変更がある場合、Databricks はデフォルトブランチのスナップショットにそれらの変更を適用し、結果としてデタッチドヘッドが生成されます。
- ユーザーまたはサービスプリンシパルは、
update repoAPIを使用してタグをチェックアウトします。
この状態から回復するには、以下の手順に従ってください。
- 現在のコミットからブランチを作成するには 「ブランチの作成」 をクリックし、既存のブランチをチェックアウトするには 「ブランチの選択」をクリックします 。
- 変更を保持するにはコミットしてプッシュします。変更を破棄するには、
変更点 の下にあるケバブメニュー。
リポジトリの状態が矛盾しています
There was a problem with deleting folders. The repo could be in an inconsistent state and re-cloning is recommended.
このエラーは、フォルダの削除中に問題が発生したことを示しています。リポジトリは現在、矛盾した状態にあります。リポジトリを削除して再度クローンすることで、状態をリセットできます。
ノートブック名の競合
ファイル名が同一または類似しているノートブックは、リポジトリやプルリクエストを作成する際にエラーを引き起こす可能性があります。
Cannot perform Git operation due to conflicting names
A folder cannot contain a notebook with the same name as a notebook, file, or folder (excluding file extensions).
ファイル拡張子が異なっていても、名前の競合が発生する可能性があります。たとえば、次の 2 つのファイルは競合します。
notebook.ipynbnotebook.py

競合を修正するには、エラー状態の原因となっているノートブック、ファイル、またはフォルダーの名前を変更します。リポジトリのクローンを作成するときにエラーが発生する場合は、リモート Git リポジトリ内のノートブック、ファイル、またはフォルダーの名前を変更します。
予期せぬ動作
これらの問題は明確なエラーメッセージを表示しませんが、調査が必要な問題の兆候です。
タイムアウトエラー
大規模なリポジトリのクローン作成や大規模なブランチのチェックアウトといった操作では、タイムアウトエラーが発生する可能性があります。タイムアウト後も、処理はバックグラウンドで完了する可能性があります。
タイムアウトエラーが表示された場合:
- 数分待ってから、Gitフォルダを更新してください。想定されるファイルまたはブランチが存在する場合、操作は正常に完了します。
- ワークスペースの負荷が高かった場合は、負荷が下がってから再度操作を行ってください。
大規模なリポジトリでタイムアウトが発生するのを避けるには、必要なファイルのみを操作するスパースチェックアウトを使用してください。
404 エラー
ノートブック以外のファイルを開いたときに 404 エラーが発生する場合は、数分待ってからもう一度お試しください。システムがワークスペースを有効にしてから、Web アプリが構成を取得するまでの間には、短い遅延が発生します。
ユーザーによる編集なしにノートブックが変更されたように見える
ノートブックのすべての行が、ユーザーによる編集がないにもかかわらず変更されているように見える場合、その変更はおそらく行末の違いによるものです。DatabricksはLinuxスタイルの改行コード(LF)を使用しますが、これはWindowsシステムでコミットされたファイル(CRLF)とは異なる場合があります。
この問題を診断するには、 .gitattributesファイルが存在するかどうかを確認してください。
* text eol=crlf含めることはできません。- Windows を使用していない場合は、この設定を削除します。開発環境と Databricks の両方で Linux の行末が使用されます。
- Windows を使用している場合は、設定を
* text=autoに変更します。Git は内部的には Linux スタイルの行末を持つファイルを保存しますが、プラットフォーム固有の行末で自動的にチェックアウトします。
Windowsの改行文字を含むファイルを既にGitにコミットしている場合:
- 未処理の変更をすべてクリアしてください。
- ご使用の環境に合わせて、上記の説明に従って
.gitattributesファイルを更新してください。 - 変更をコミットします。
git add --renormalizeを実行します。すべての変更をコミットしてプッシュします。
削除されたファイルを復元する
ファイルの復元可能性は、実行した操作によって異なります。一部の操作では ゴミ箱 フォルダから復元できますが、そうでない操作もあります。以前にリモートブランチにコミットおよびプッシュしたファイルを復元するには、リモートリポジトリのGitコミット履歴を使用します。
操作 | ファイルは復元可能ですか? |
|---|---|
ワークスペースブラウザーを使用してファイルを削除する | はい、 ゴミ箱 フォルダから |
Gitフォルダダイアログで新しいファイルを破棄する | はい、 ゴミ箱 フォルダから |
Gitフォルダダイアログを使用して変更されたファイルを破棄する | いいえ、ファイルは消えています |
| いいえ、ファイルの変更は消えています |
| いいえ、ファイルの変更は消えています |
Gitフォルダダイアログでブランチを切り替える | はい、リモートGitリポジトリから |
Gitフォルダダイアログからのコミットやプッシュなどのその他のGit操作 | はい、リモートGitリポジトリから |
| はい、リモートGitリポジトリから |
サポートを求める
このページに記載されている手順を試しても問題が解決しない場合は、Databricksサポートにお問い合わせください。サポートにお問い合わせいただく際は、以下の情報を含めてください。
- 正確なエラーメッセージ
- Gitプロバイダーの名前と、リポジトリが公開か非公開か
- この問題がワークスペース内のすべてのユーザーに影響するか、一部のユーザーのみに影響するか
- すでに試したステップ