Partager via


Exécuter des opérations Git sur des dossiers Git Databricks

Cette page explique comment effectuer des opérations Git courantes dans votre espace de travail Azure Databricks à l’aide de dossiers Git, notamment le clonage, la branchement, la validation et l’envoi (push).

Ce guide couvre les opérations Git suivantes :

Installation et configuration Flux de travail quotidien Opérations avancées

Cloner un dépôt

Lorsque vous clonez un référentiel distant, Databricks crée un dossier Git dans votre espace de travail qui contient le contenu du référentiel et effectue le suivi des modifications. Vous pouvez créer des dossiers Git à l’aide de l’interface utilisateur Azure Databricks ou du terminal web.

Remarque

  • Vous devez avoir CAN MANAGE l’autorisation sur le dossier parent où vous souhaitez créer le dossier Git.
  • Votre espace de travail doit avoir des informations d’identification Git configurées. Consultez Connecter votre fournisseur Git à Databricks.

Cloner depuis l’interface utilisateur

  1. Dans la barre latérale, sélectionnez Espace de travail et accédez au dossier dans lequel vous souhaitez créer le clone du référentiel Git.

  2. Cliquez sur Créer un>dossier Git.

  3. Dans la boîte de dialogue Créer un dossier Git, fournissez les informations suivantes :

    Terrain Descriptif
    URL du référentiel Git URL du dépôt Git que vous souhaitez cloner, au format https://example.com/organization/project.git.
    Fournisseur Git Fournisseur Git pour le référentiel que vous souhaitez cloner.
    Nom du dossier Git Nom du dossier de votre espace de travail qui contient le contenu du dépôt cloné.
    Mode d’extraction éparse Indique s’il faut utiliser l’extraction éparse, qui clone seul un sous-ensemble de répertoires de votre référentiel à l’aide d’un modèle en cône. Cela est utile si votre référentiel dépasse les limites de taille.
    Utiliser Git CLI (bêta) Activez l’exécution de commandes Git standard directement à partir d’un terminal Azure Databricks. Cela permet d’accéder aux opérations avancées telles que les crochets pré-commit, les sous-modules Git et le stockage de fichiers volumineux (LFS). Consultez Utiliser des commandes Git CLI (bêta).
  4. Cliquez sur Créer un dossier Git. Le contenu du référentiel distant est cloné dans votre espace de travail et vous pouvez commencer à utiliser les opérations Git prises en charge.

Cloner à partir du terminal web

Vous pouvez également créer des dossiers Git avec un accès CLI directement à partir du terminal web :

  1. Accédez au terminal web. Consultez Exécuter des commandes d’interpréteur de commandes dans un terminal web Azure Databricks.

  2. Accédez au répertoire parent dans /Workspace:

    cd /Workspace/Users/<your-email>/<project>
    

    Remarque

    Vous ne pouvez pas créer de dossiers Git avec l’accès à Git CLI dans /Repos ou dans des dossiers Git existants.

  3. Clonez votre référentiel :

    git clone <remote-url>
    

    La git clone commande utilise les informations d’identification Git configurées dans votre espace de travail. Consultez Connecter votre fournisseur Git à Databricks.

  4. Actualisez votre navigateur pour afficher le nouveau dossier dans le navigateur de fichiers de l’espace de travail.

Utiliser des commandes Git CLI (bêta)

Important

Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.

Les dossiers Git avec accès Git CLI vous permettent d’exécuter des commandes Git standard directement à partir d’un terminal Azure Databricks. Vous pouvez:

  • Exécutez n’importe quelle commande Git, y compris git stash, git pull --forceet git rebase -i.
  • Intégrez le linting et l'analyse du code à des hooks de pré-commit.
  • Utilisez des référentiels qui dépassent les limites de 2 Go de mémoire et de 4 Go de disques de dossiers Git standard.
  • Utilisez des sous-modules Git et un stockage de fichiers volumineux (LFS).
  • Effectuez plusieurs validations localement avant d’envoyer (push) vers le référentiel distant.

Pour utiliser l’accès Git CLI, votre espace de travail doit disposer d’un calcul serverless activé avec la version 4 ou ultérieure de l’environnement.

Créer un dossier Git avec accès à Git CLI

Pour créer un dossier Git avec accès CLI :

  • Si vous utilisez le terminal web, tout dépôt que vous clonez dispose automatiquement de l’accès à l’interface CLI Git.
  • Si vous utilisez l’interface utilisateur, activez l’interface cli Git lorsque vous créez le dossier Git.

Après avoir créé un dossier Git avec accès CLI, exécutez n’importe quelle commande Git standard à partir du terminal web :

cd /Workspace/Users/<your-email>/<project>/my-repo

# Interactive rebase
git rebase -i main

# Stash uncommitted changes
git stash

# Work with submodules
git submodule update --init --recursive

Limitations de l’interface CLI Git

Les dossiers Git avec accès CLI présentent les limitations suivantes :

  • Les espaces de travail avec des listes d’autorisation d’URL distantes activées ne peuvent pas utiliser les fonctionnalités de l’interface CLI Git.
  • Les commandes Git CLI ignorent le paramètre d’administrateur qui bloque la validation des sorties de notebook.
  • L’API Repos n’est pas prise en charge pour les dossiers Git avec accès CLI.
  • Vous ne pouvez pas activer l’accès Git CLI pour les dossiers Git existants.

Résoudre les problèmes liés aux opérations Git CLI

  • Le terminal demande des informations d’identification sur chaque opération : la fonctionnalité Cli Git n’est pas activée sur votre espace de travail. Contactez l’administrateur de votre espace de travail pour vérifier que la préversion est activée.
  • Impossible d’activer l’accès CLI : les espaces de travail avec des listes d’autorisation d’URL distantes ne peuvent pas utiliser les fonctionnalités de l’interface CLI Git. Contactez l’administrateur de votre espace de travail pour passer en revue la configuration réseau de votre espace de travail.
  • Les opérations Git échouent avec des erreurs d’autorisation : vérifiez que vous disposez CAN MANAGE d’autorisations sur le dossier parent et que vos informations d’identification Git de votre espace de travail sont valides. Consultez Connecter votre fournisseur Git à Databricks.

Accéder à la boîte de dialogue Git

Accédez à la boîte de dialogue Git à partir d’un notebook ou à partir du navigateur de dossiers Git Azure Databricks.

  • À partir d’un bloc-notes, cliquez sur le bouton en regard du nom du bloc-notes qui identifie la branche Git actuelle.

    Bouton de la boîte de dialogue Git sur le notebook.

  • Dans le navigateur des dossiers Git Azure Databricks, cliquez sur Git en regard du nom du dépôt.

Une boîte de dialogue plein écran s’affiche dans laquelle vous pouvez effectuer des opérations Git.

Boîte de dialogue utilisée pour effectuer des opérations Git dans un espace de travail Databricks.

  1. Votre branche de travail actuelle. Vous pouvez sélectionner d’autres branches ici. Si d’autres utilisateurs ont accès à ce dossier Git, la modification de la branche modifie également la branche pour eux s’ils partagent le même espace de travail. Consultez la meilleure pratique recommandée pour éviter ce problème.
  2. Créez une branche.
  3. Ressources de fichiers et sous-dossiers archivés dans votre branche actuelle.
  4. Afficher l’historique de la branche actuelle.
  5. Extrayez du contenu à partir du référentiel Git distant.
  6. Ajoutez un message de validation et une description développée facultative pour vos modifications.
  7. Validez votre travail sur la branche de travail et envoyez la branche mise à jour au référentiel Git distant.

Cliquez sur l’icône de menu kebab pour choisir parmi d’autres opérations de branche Git, telles qu’une réinitialisation en dur, une fusion ou un rebase.

Menu dans la boîte de dialogue du dossier Git pour les opérations de branche.

Créer une branche

Pour créer une branche :

  1. Ouvrez la boîte de dialogue Git.
  2. Cliquez sur Créer une branche.
  3. Entrez un nom pour la nouvelle branche et sélectionnez la branche de base.
  4. Cliquez sur Créer.

Nouvelle branche de la boîte de dialogue Git.

Basculer vers une autre branche

Pour changer de branche, utilisez le menu déroulant des branches dans la fenêtre Git :

Commutateur de boîte de dialogue Git vers une autre branche

Les modifications non validées sur la branche actuelle continuent et s’affichent comme des modifications non validées sur la nouvelle branche, si les modifications non validées ne sont pas en conflit avec le code sur la nouvelle branche. Abandonnez les modifications avant ou après les changements de branche si vous n’avez pas l’intention de transmettre les modifications non validées.

La version locale d’une branche peut rester présente dans le dossier Git associé pendant jusqu’à 30 jours après la suppression de la branche distante. Pour supprimer complètement une branche locale dans un dossier Git, supprimez le référentiel.

Important

Le changement de branches peut supprimer des ressources d’espace de travail lorsque la nouvelle branche ne contient pas ces ressources. Le basculement vers la branche actuelle recrée les ressources supprimées avec de nouveaux ID et URL. Cette modification ne peut pas être inversée.

Si vous avez partagé ou mis en signet des ressources depuis un dossier Git, vérifiez que les ressources existent sur la nouvelle branche avant de basculer.

Valider et envoyer (push) les modifications

Lorsque vous ajoutez de nouveaux blocs-notes ou fichiers, ou apportez des modifications aux blocs-notes ou fichiers existants, l’interface utilisateur du dossier Git met en surbrillance les modifications.

Boîte de dialogue Git avec les modifications mises en évidence.

Ajoutez un message de validation requis pour les modifications, puis cliquez sur Commit &Push pour envoyer (push) les modifications vers le référentiel Git distant.

Si vous n’êtes pas autorisé à valider des modifications dans la branche par défaut, créez une nouvelle branche et utilisez l’interface de votre fournisseur Git pour créer une pull request et la fusionner dans la branche par défaut.

Remarque

Les sorties de bloc-notes ne sont pas incluses dans les validations par défaut lorsque les blocs-notes sont enregistrés dans des formats de fichier source (.py, .scala, .sql, .r). Pour plus d’informations sur la validation des résultats de notebooks au format IPYNB, consultez Contrôler les validations d’artefacts de sortie de notebooks IPYNB.

Modifications de tirage (pull)

Pour extraire des modifications à partir du référentiel Git distant, cliquez sur Extraire dans la boîte de dialogue des opérations Git. Les notebooks et d’autres fichiers sont mis à jour automatiquement vers la dernière version de votre référentiel Git distant. Si les modifications extraites du dépôt distant sont en conflit avec vos modifications locales dans Azure Databricks, résolvez les conflits de fusion.

Important

Les opérations Git qui récupèrent les modifications en amont effacent l’état du notebook. Consultez Les modifications entrantes effacent l’état du bloc-notes.

Collaborer dans des dossiers Git

Les dossiers Git Azure Databricks se comportent en tant que clients Git incorporés dans votre espace de travail, ce qui vous permet de collaborer via le contrôle de code source et le contrôle de version Git. Pour une collaboration efficace d’équipe :

  • Chaque membre de l’équipe possède son propre dossier Git mappé au dépôt Git distant, où il travaille dans sa propre branche de développement.
  • Un seul utilisateur effectue des opérations Git sur chaque dossier Git. Plusieurs utilisateurs effectuant des opérations Git sur le même dossier peuvent entraîner des problèmes de gestion des branches, tels qu’un utilisateur qui bascule involontairement des branches pour tout le monde.

Pour partager votre configuration de dossier Git avec un collaborateur :

  1. Cliquez sur Partager.
  2. Cliquez sur Copier le lien pour créer un dossier Git.
  3. Envoyez l’URL à votre collaborateur.
  4. Lorsque votre collaborateur ouvre l’URL, une boîte de dialogue est préremplie avec la configuration de votre dossier Git.
  5. Ils cliquent sur Créer un dossier Git pour cloner le référentiel dans leur propre espace de travail sous leur dossier de travail actuel.

Fusionner des branches

La fonction de fusion dans les dossiers Git Azure Databricks utilise git merge pour combiner l’historique de validation d’une branche vers une autre. Pour les débutants Git, Databricks recommande d’utiliser la fusion au lieu de la rebase, car elle ne nécessite pas d’envoi de force et ne réécrit pas l’historique de validation.

Pour fusionner une branche dans une autre, cliquez sur l’icône de menu Kebab. Menu Kebab et sélectionnez Fusionner.

  • En cas de conflit de fusion, résolvez-le dans l’interface utilisateur des dossiers Git.
  • En l'absence de conflit, la fusion pousse vers le référentiel Git distant à l'aide de git push.

Résoudre les conflits de fusion

Les conflits de fusion se produisent lorsque Git ne peut pas rapprocher automatiquement les modifications apportées aux mêmes lignes d’un fichier provenant de différentes sources, telles que lors d’une opération d’extraction, de rebase ou de fusion.

Pour résoudre un conflit de fusion, utilisez l’interface utilisateur des dossiers Git qui affiche les fichiers en conflit et les options de résolution.

  • Modifiez manuellement le fichier pour choisir les modifications à conserver.
  • Sélectionnez Conserver toutes les modifications actuelles ou Prendre toutes les modifications entrantes pour accepter entièrement une version.
  • Abandonnez l’opération et ignorez les modifications en conflit pour réessayer.

GIF animé montrant un conflit de fusion dans l’interface utilisateur des dossiers Git

Résoudre manuellement les conflits

La résolution manuelle des conflits vous permet de déterminer les lignes en conflit à accepter. Modifiez directement le contenu du fichier pour résoudre les conflits.

GIF animé d’une résolution manuelle d’un conflit de fusion

Pour résoudre le conflit, sélectionnez les lignes de code que vous souhaitez conserver et supprimer tout le reste, notamment les marqueurs de conflit de fusion Git. Lorsque vous avez terminé, sélectionnez Marquer comme résolu.

Si vous avez fait des choix incorrects lors de la résolution des conflits de fusion, cliquez sur Abandonner pour abandonner le processus et annuler tout. Une fois que tous les conflits sont résolus, cliquez sur Continuer la fusion ou Continuer la rebase pour résoudre le conflit et terminer l’opération.

Rebaser une branche

La fonction de rebasage dans les dossiers Git Azure Databricks utilise git rebase pour intégrer les changements d'une branche dans une autre en réappliquant vos commits sur la branche cible, ce qui crée un historique linéaire.

Pour Kebab menu icon.rebaser une branche sur une autre branche, cliquez sur Menu Kebab, puis sélectionnez Rebase, puis sélectionnez la branche cible.

  • Après le rebasage, exécutez les commandes Git git commit et git push --force pour mettre à jour le référentiel distant.
  • Rebase réécrit l’historique des validations, ce qui peut entraîner des problèmes de contrôle de version pour les collaborateurs travaillant dans le même référentiel.

Réinitialiser une branche

Effectuez une réinitialisation Git à partir de l’interface utilisateur des dossiers Git. Cette opération est équivalente à git reset --hard combiné avec git push --force.

La réinitialisation de Git remplace le contenu et l’historique de la branche par l’état le plus récent d’une autre branche. Vous pouvez l’utiliser lorsque les modifications sont en conflit avec la branche en amont et que vous n’avez pas l’esprit de perdre ces modifications lorsque vous réinitialisez la branche en amont. En savoir plus sur git reset --hard.

Réinitialiser à une branche distante

Avec git reset dans ce scénario :

  • Vous réinitialisez votre branche sélectionnée (par exemple, feature_a) à une autre branche (par exemple, main).
  • Vous réinitialisez également la branche feature_a en amont (distante) sur la branche primaire.

Important

Lorsque vous réinitialisez, vous perdez toutes les modifications validées et non validées dans la version locale et distante de la branche.

Pour réinitialiser une branche à une branche distante :

  1. Dans le menu Branche de l’interface utilisateur de Dossiers Git, choisissez la branche que vous souhaitez réinitialiser.

  2. Sélectionnez Réinitialiser à partir de l’icône de menu Kebab.

    Opération de réinitialisation de Git dans le menu des trois points.

  3. Sélectionnez la branche à réinitialiser, puis cliquez sur Exécuter la réinitialisation Git.

Configurer le mode de basculement partiel sur une branche (Sparse Checkout)

L'extraction parsemée est un paramètre côté client qui vous permet de cloner et de travailler uniquement avec un sous-ensemble des répertoires du référentiel distant dans Azure Databricks. Cela est particulièrement utile si la taille de votre référentiel dépasse les limites prises en charge par Azure Databricks.

Activez le mode d’extraction éparse lorsque vous clonez un nouveau dépôt. Vous ne pouvez pas désactiver le mode d’extraction de façon clairsemée après l’avoir activé.

  1. Dans la boîte de dialogue Créer un dossier Git , activez le mode d’extraction éparse.

    Option Basculement partiel sur une branche dans la boîte de dialogue Ajouter un dossier Git.

  2. Dans la zone Modèles de cône, spécifiez les modèles de basculement sur une branche de cône souhaités. Séparez plusieurs modèles par des sauts de ligne.

Fonctionnement des modèles de cône

Pour comprendre le fonctionnement des modèles de cône en mode de vérification éparse, consultez le diagramme suivant représentant la structure du dépôt distant.

Structure de dépôt distant sans basculement partiel sur une branche.

Si vous sélectionnez le mode d’extraction éparse, mais que vous ne spécifiez pas de modèle de cône, le modèle de cône par défaut s’applique. Cela inclut uniquement les fichiers à la racine, sans sous-répertoires, ce qui entraîne une structure de dépôt comme suit :

Basculement partiel sur une branche (Sparse Checkout) : modèle de cône par défaut.

La définition de manière récursive du modèle de cône d'extraction éparse comme parent/child/grandchild inclut tout le contenu du répertoire grandchild. Les fichiers se trouvant immédiatement dans le répertoire /parent, /parent/child et racine sont également inclus. Consultez la structure de répertoires dans le diagramme suivant :

Basculement partiel sur une branche (Sparse Checkout) : spécifiez le modèle de cône des dossiers parent-petit_enfant-enfant.

Remarque

Les comportements d’exclusion (!) ne sont pas pris en charge dans la syntaxe du modèle de cône Git.

Modifier les paramètres de basculement partiel sur une branche

Après avoir créé un dépôt, modifiez le modèle de cône d’extraction épars depuis Paramètres>Avancé>Modèles de cône.

Notez le comportement suivant :

  • La suppression d’un dossier du modèle cône le supprime d’Azure Databricks s’il n’existe aucune modification non validée.

  • L’ajout d’un dossier en modifiant le modèle de cône de vérification restreinte le synchronise avec Azure Databricks sans nécessiter de pull supplémentaire.

  • Les modèles d’extractions par sélection partielle ne peuvent pas être modifiés pour retirer un dossier lorsqu’il existe des modifications non validées dans ce dossier.

    Par exemple, si vous modifiez un fichier dans un dossier et que vous ne validez pas les modifications, essayez de modifier le modèle d’extraction éparse pour exclure ce dossier, le modèle est accepté, mais le dossier n’est pas supprimé. Vous devez rétablir le modèle pour inclure ce dossier, valider vos modifications, puis réappliquer le nouveau modèle.

Apporter des modifications avec l’extraction éparse

Modifiez les fichiers existants et validez-les et envoyez-les à partir du dossier Git. Lorsque vous créez des dossiers de fichiers, incluez-les dans le modèle de cône que vous avez spécifié pour ce référentiel.

L’inclusion d’un nouveau dossier en dehors du modèle de cône génère une erreur pendant l’opération de commit et d’envoi (push). Pour résoudre ce problème, modifiez le modèle de cône pour inclure le nouveau dossier que vous essayez de valider et d’envoyer (push).

Limitations de l'extraction éparse

  • L’extraction éparse ne fonctionne pas pour les référentiels Azure DevOps de plus de 4 Go.
  • Vous ne pouvez pas désactiver l’extraction éparse pour un dépôt créé avec l’activation de l’extraction éparse.

Gérer les dossiers Git par programmation

Pour gérer les dossiers Git à l’aide de l’API, consultez la référence de l’API Repos.

Supprimer un dossier Git

Pour supprimer un dossier Git de votre espace de travail :

  1. Cliquez avec le bouton droit sur le dossier Git et sélectionnez Déplacer vers la corbeille.
  2. Cliquez sur Confirmer et déplacer vers la Corbeille.

Étapes suivantes