Git-bewerkingen uitvoeren in Databricks Git-mappen (opslagplaatsen)
In het artikel wordt beschreven hoe u algemene Git-bewerkingen uitvoert in uw Databricks-werkruimte met behulp van Git-mappen, waaronder klonen, vertakkingen, doorvoeren en pushen.
Een opslagplaats klonen die is verbonden met een externe Git-opslagplaats
Selecteer in de zijbalk Werkruimte en blader vervolgens naar de map waarin u de Git-repositorykloon wilt maken.
Klik op het pijltje omlaag rechts van de Voeg toe in de rechterbovenhoek van de werkruimte, en selecteer Git-map in de vervolgkeuzelijst.
Geef in het dialoogvenster Git-map maken de volgende informatie op:
- De URL van de Git-opslagplaats die u wilt klonen, in de indeling
https://example.com/organization/project.git
- De Git-provider voor de opslagplaats die u wilt klonen. Opties zijn GitHub, GitHub Enterprise, GitLab en Azure DevOps (Azure-opslagplaatsen)
- De naam van de map in uw werkruimte die de inhoud van de gekloonde opslagplaats bevat
- Ongeacht of u gebruikmaakt van sparse uitchecken, waarbij alleen een subset van de mappen van uw repository wordt gekloond, gespecificeerd met behulp van een kegelpatroon. Dit is handig als uw opslagplaats groter is dan de limieten die door Databricks worden ondersteund .
- De URL van de Git-opslagplaats die u wilt klonen, in de indeling
Klik op Git-map maken. De inhoud van de externe opslagplaats wordt gekloond naar de Databricks-opslagplaats en u kunt hiermee aan de slag met ondersteunde Git-bewerkingen via uw werkruimte.
Best practice: Samenwerken in Git-mappen
Databricks Git-mappen gedragen zich effectief als ingesloten Git-clients in uw werkruimte, zodat gebruikers kunnen samenwerken met behulp van broncodebeheer en versiebeheer op basis van Git. Als u teamsamenwerking effectiever wilt maken, gebruikt u een afzonderlijke Databricks Git-map die is toegewezen aan een externe Git-opslagplaats voor elke gebruiker die in hun eigen ontwikkelvertakking werkt. Hoewel meerdere gebruikers inhoud kunnen bijdragen aan een Git-map, moet slechts één aangewezen gebruiker Git-bewerkingen uitvoeren, zoals pull-, push-, doorvoer- en vertakkingswisseling. Als meerdere gebruikers Git-bewerkingen uitvoeren in een Git-map, kan vertakkingsbeheer lastig en foutgevoelig worden, bijvoorbeeld wanneer een gebruiker een vertakking schakelt en onbedoeld overschakelt voor alle andere gebruikers van die map.
Als u een Git-map wilt delen met een samenwerker, klikt u op Koppeling kopiëren om een Git-map te maken in de banner boven aan uw Databricks-werkruimte. Met deze actie wordt een URL gekopieerd naar het lokale klembord dat u naar een andere gebruiker kunt verzenden. Wanneer de ontvanger die URL in een browser laadt, wordt deze naar de werkruimte gebracht waar ze hun eigen Git-map kunnen maken die is gekloond vanuit dezelfde externe Git-opslagplaats. Ze zien een Git-map maken modaal dialoogvenster in de gebruikersinterface, vooraf ingevuld met de waarden uit uw eigen Git-map. Wanneer ze klikken op de blauwe Knop Git-map maken in de modale versie, wordt de Git-opslagplaats gekloond naar de werkruimte onder de huidige werkmap, waar ze er nu rechtstreeks mee kunnen werken.
Wanneer u de Git-map van iemand anders opent in een gedeelde werkruimte, klikt u op Git-map maken in de banner bovenaan. Met deze actie wordt het dialoogvenster Git-map maken voor u geopend, vooraf ingevuld met de configuratie voor de Git-opslagplaats die er een back-up van maakt.
Belangrijk
Momenteel kunt u de Git CLI niet gebruiken om Git-bewerkingen uit te voeren in een Git-map. Als u een Git-opslagplaats kloont met behulp van de CLI via de webterminal van een cluster, worden de bestanden niet weergegeven in de Gebruikersinterface van Azure Databricks.
Het Git-dialoogvenster openen
U hebt toegang tot het Git-dialoogvenster vanuit een notebook of vanuit de Browser Databricks Git-mappen.
Klik in een notebook op de knop naast de naam van het notebook waarmee de huidige Git-vertakking wordt geïdentificeerd.
Klik in de browser voor Git-mappen van Databricks op de knop rechts van de naam van de opslagplaats. U kunt ook met de rechtermuisknop op de naam van de opslagplaats klikken en Git selecteren... in het menu.
U ziet een volledig schermvenster waarin u Git-bewerkingen kunt uitvoeren.
- Uw huidige werkbranch. U kunt hier andere takken selecteren. Als andere gebruikers toegang hebben tot deze Git-map, verandert het wijzigen van de vertakking ook de vertakking voor hen als ze dezelfde werkruimte delen. Bekijk een aanbevolen best practice om dit probleem te voorkomen.
- De knop voor het maken van een nieuwe vertakking.
- De lijst met bestandsassets en submappen die zijn ingecheckt in uw huidige vertakking.
- Een knop waarmee u naar uw Git-provider gaat en u de huidige vertakkingsgeschiedenis ziet.
- De knop voor het ophalen van inhoud uit de externe Git-opslagplaats.
- Tekstvak waarin u een doorvoeringsbericht en optionele uitgebreide beschrijving voor uw wijzigingen toevoegt.
- De knop om uw werk door te voeren naar de werkbranch en de bijgewerkte vertakking naar de externe Git-opslagplaats te pushen.
Klik in de rechterbovenhoek op het om te kiezen uit extra Git-vertakkingsbewerkingen, zoals een harde reset, een merge of een rebase.
Dit is uw thuisbasis voor het uitvoeren van Git-bewerkingen in de Git-map van uw werkruimte. U bent beperkt tot de Git-bewerkingen die worden weergegeven in de gebruikersinterface.
Een nieuwe branch maken
U kunt een nieuwe vertakking maken op basis van een bestaande vertakking vanuit het Git-dialoogvenster:
Overschakelen naar een andere vertakking
U kunt overschakelen naar een andere vertakking (uitchecken) met behulp van de vervolgkeuzelijst vertakking in het Git-dialoogvenster:
Belangrijk
Nadat u een vertakking in een Git-map hebt uitchecken, is er altijd een kans dat de vertakking door iemand anders wordt verwijderd in de externe Git-opslagplaats. Als een vertakking wordt verwijderd in de externe opslagplaats, kan de lokale versie maximaal zeven dagen aanwezig blijven in de bijbehorende Git-map. Lokale vertakkingen in Databricks kunnen niet worden verwijderd, dus als u ze moet verwijderen, moet u de opslagplaats ook verwijderen en opnieuw verwijderen.
Wijzigingen doorvoeren en pushen naar de externe Git-opslagplaats
Wanneer u nieuwe notitieblokken of bestanden hebt toegevoegd of wijzigingen hebt aangebracht in bestaande notitieblokken of bestanden, worden de wijzigingen gemarkeerd in de gebruikersinterface van de Git-map.
Voeg een verplicht doorvoerbericht toe voor de wijzigingen en klik op Doorvoeren en pushen om deze wijzigingen naar de externe Git-opslagplaats te pushen.
Als u niet bent gemachtigd om door te voeren naar de standaardvertakking (zoals de main
vertakking), maakt u een nieuwe vertakking en gebruikt u de interface van uw Git-provider om een pull-aanvraag (PR) te maken om deze samen te voegen in de standaardvertakking.
Notitie
- Notebook-uitvoer wordt niet standaard opgenomen in doorvoeringen wanneer notebooks worden opgeslagen in bronbestandsindelingen (
.py
,.scala
,.sql
, )..r
Zie Doorvoeringen van IPYNB-notebookuitvoerartefacten beheren voor informatie over het doorvoeren van notebookuitvoer van notebooks met behulp van de IPYNB-indeling
Wijzigingen ophalen uit de externe Git-opslagplaats
Als u wijzigingen wilt ophalen uit de externe Git-opslagplaats, klikt u op Pull in het dialoogvenster Git-bewerkingen. Notitieblokken en andere bestanden worden automatisch bijgewerkt naar de nieuwste versie in uw externe Git-opslagplaats. Als de wijzigingen die zijn opgehaald uit de externe opslagplaats conflicteren met uw lokale wijzigingen in Databricks, moet u de samenvoegingsconflicten oplossen.
Belangrijk
Git-bewerkingen die upstream-wijzigingen ophalen, wissen de status van het notebook. Zie Binnenkomende wijzigingen wissen de status van het notitieblok voor meer informatie.
Vertakkingen samenvoegen
Open de bewerking Git-samenvoeging door deze te selecteren in de resource in de rechterbovenhoek van het dialoogvenster Git-bewerkingen.
De samenvoegfunctie in Databricks Git-mappen voegt de ene vertakking samen in een andere met behulp van git merge
. Een samenvoegbewerking is een manier om de doorvoergeschiedenis van de ene vertakking te combineren in een andere vertakking; het enige verschil is de strategie die wordt gebruikt om dit te bereiken. Voor Git-beginners is het raadzaam om samenvoegen (over rebase) te gebruiken omdat hiervoor geen geforceerde pushing naar een vertakking is vereist en daarom geen doorvoergeschiedenis wordt herschreven.
- Als er een samenvoegingsconflict is, lost u dit op in de gebruikersinterface van Git-mappen.
- Als er geen conflict is, wordt de samenvoeging naar de externe Git-opslagplaats gepusht met behulp van
git push
.
Rebase
een vertakking op een andere vertakking
Open de Git Rebase-bewerking door deze te selecteren in het menu Voor het opslaan in de rechterbovenhoek van het dialoogvenster Git-bewerkingen.
Als u de doorvoergeschiedenis van een vertakking wijzigt, wordt de doorvoergeschiedenis van een vertakking gewijzigd.
git merge
Hiermee git rebase
worden wijzigingen van de ene vertakking in een andere vertakking geïntegreerd. Rebase doet het volgende:
- Hiermee worden de doorvoeringen op uw huidige vertakking opgeslagen in een tijdelijk gebied.
- Hiermee stelt u de huidige vertakking opnieuw in op de gekozen vertakking.
- Past elke afzonderlijke doorvoer die eerder is opgeslagen op de huidige vertakking opnieuw toe, wat resulteert in een lineaire geschiedenis waarin wijzigingen van beide vertakkingen worden gecombineerd.
Waarschuwing
Het gebruik van rebase kan problemen met versiebeheer veroorzaken voor medewerkers die in dezelfde opslagplaats werken.
Een algemene werkstroom is het opnieuw baseeren van een functievertakking op de hoofdvertakking.
Ga als volgt te werk om een vertakking opnieuw te maken op een andere vertakking:
Selecteer in het menu Branch in de gebruikersinterface van Git-mappen de branch die u opnieuw wilt baseren.
Selecteer Rebase in het kebabmenu.
Selecteer de vertakking waarop u opnieuw wilt herbaseren.
Met de herbase-bewerking worden wijzigingen van de vertakking die u hier kiest, geïntegreerd in de huidige vertakking.
Databricks voert Git-mappen git commit
en git push --force
uit om de externe Git-opslagplaats bij te werken.
Samenvoegingsconflicten oplossen
Samenvoegingsconflicten treden op wanneer twee of meer Git-gebruikers proberen wijzigingen in dezelfde regels van een bestand samen te voegen in een gemeenschappelijke vertakking en Git niet de juiste wijzigingen kunnen kiezen die moeten worden toegepast. Samenvoegingsconflicten kunnen ook optreden wanneer een gebruiker wijzigingen uit een andere vertakking probeert op te halen of samen te voegen in een vertakking met niet-doorgevoerde wijzigingen.
Als een bewerking zoals pull, opnieuw baseren of samenvoegen een samenvoegingsconflict veroorzaakt, toont de gebruikersinterface van Git-mappen een lijst met bestanden met conflicten en opties voor het oplossen van de conflicten.
U hebt twee primaire opties:
- Gebruik de gebruikersinterface van Git-mappen om het conflict op te lossen.
- De Git-bewerking afbreken, de wijzigingen in het conflicterende bestand handmatig negeren en de Git-bewerking opnieuw proberen.
Bij het oplossen van samenvoegingsconflicten met de gebruikersinterface van Git-mappen moet u kiezen tussen het handmatig oplossen van de conflicten in de editor of het bewaren van alle binnenkomende of huidige wijzigingen.
Alle huidige wijzigingen behouden of binnenkomende wijzigingen overnemen
Als u weet dat u alleen alle huidige of binnenkomende wijzigingen wilt behouden, klikt u rechts van de bestandsnaam in het notitieblokvenster en selecteert u Alle huidige wijzigingen of Alle binnenkomende wijzigingen. Klik op de knop met hetzelfde label om de wijzigingen door te voeren en het conflict op te lossen.
Tip
Weet u niet welke optie u wilt kiezen? De kleur van elke optie komt overeen met de betreffende codewijzigingen die in het bestand worden bewaard.
Conflicten handmatig oplossen
Met handmatige conflictoplossing kunt u bepalen welke van de conflicterende regels moeten worden geaccepteerd in de samenvoegbewerking. Voor samenvoegingsconflicten lost u het conflict op door de inhoud van het bestand rechtstreeks te bewerken met de conflicten.
Als u het conflict wilt oplossen, selecteert u de coderegels die u wilt behouden en verwijdert u alle andere regels, inclusief de markeringen voor samenvoegingsconflicten in Git. Wanneer u klaar bent, selecteert u Markeren als opgelost.
Als u besluit dat u de verkeerde keuzes hebt gemaakt bij het oplossen van samenvoegingsconflicten, klikt u op de knop Afbreken om het proces af te breken en alles ongedaan te maken. Zodra alle conflicten zijn opgelost, klikt u op de optie Doorgaan samenvoegen of Doorgaan met opnieuwbase om het conflict op te lossen en de bewerking te voltooien.
Git reset
In Databricks Git-mappen kunt u een Git reset
uitvoeren in de Gebruikersinterface van Azure Databricks. Git-reset in Databricks Git-mappen is gelijk aan git reset --hard
gecombineerd met git push --force
.
Git reset vervangt de inhoud en geschiedenis van de vertakking door de meest recente status van een andere vertakking. U kunt dit gebruiken wanneer bewerkingen conflicteren met de upstreamvertakking en u niet erg vindt dat u deze bewerkingen kwijtraakt wanneer u de upstreamvertakking opnieuw instelt.
Meer informatie over Git reset –hard
.
Opnieuw instellen op een upstream (externe) vertakking
Met git reset
in dit scenario:
- U stelt de geselecteerde vertakking (bijvoorbeeld
feature_a
) opnieuw in op een andere vertakking (bijvoorbeeldmain
). - U stelt de upstream -vertakking (externe)
feature_a
ook opnieuw in op main.
Belangrijk
Wanneer u de branch reset, verliest u alle niet-doorgevoerde en wel-doorgevoerde wijzigingen in zowel de lokale als de externe versie van de branch.
Een vertakking opnieuw instellen op een externe vertakking:
Kies in de gebruikersinterface van Git-mappen in het menu Branch de vertakking die u opnieuw wilt instellen.
Selecteer Reset vanuit het kebabmenu.
Selecteer de vertakking die je wilt resetten.
De sparse-betaalmodus configureren
Sparse-betaling is een instelling aan de clientzijde waarmee u alleen een subset van de mappen van de externe opslagplaatsen in Databricks kunt klonen en ermee kunt werken. Dit is vooral handig als de grootte van uw opslagplaats buiten de ondersteunde limieten van Databricks valt.
U kunt de Sparse Checkout-modus gebruiken bij het toevoegen (klonen) van een nieuwe opslagplaats.
Open Geavanceerd in het dialoogvenster Git-map toevoegen.
Selecteer Sparse-uitcheckmodus.
Geef in het vak Kegelpatronen de gewenste cone-betaalpatronen op. Scheid meerdere patronen door regeleinden.
Op dit moment kunt u het sparse-uitchecken voor een opslagplaats in Azure Databricks niet uitschakelen.
Hoe kegelpatronen werken
Als u wilt weten hoe kegelpatroon werkt in de sparse-betaalmodus, raadpleegt u het volgende diagram dat de structuur van de externe opslagplaats vertegenwoordigt.
Als u de betaalmodus Sparse selecteert, maar geen kegelpatroon opgeeft, wordt het standaardpatroon voor kegels toegepast. Dit omvat alleen de bestanden in de hoofdmap en geen submappen, wat resulteert in een opslagplaatsstructuur als volgt:
Als u het patroon voor het parseren van de kassacone instelt als parent/child/grandchild
resultaat, wordt alle inhoud van de grandchild
map recursief opgenomen. De bestanden direct in de hoofdmap /parent
en de /parent/child
hoofdmap zijn ook opgenomen. Zie de mapstructuur in het volgende diagram:
U kunt meerdere patronen toevoegen, gescheiden door regeleinden.
Notitie
Uitsluitingsgedrag (!
) wordt niet ondersteund in de syntaxis van het Git-kegelpatroon.
Instellingen voor sparse-betaling wijzigen
Zodra een opslagplaats is gemaakt, kan het patroon sparse kassacone worden bewerkt vanuit > voor instellingen >.
Let op het volgende gedrag:
Als u een map uit het kegelpatroon verwijdert, wordt deze verwijderd uit Databricks als er geen niet-doorgevoerde wijzigingen zijn.
Als u een map toevoegt via het bewerken van het patroon sparse-kassacone, wordt deze toegevoegd aan Databricks zonder dat hiervoor extra pull nodig is.
Sparse-uitcheckpatronen kunnen niet worden aangepast om een map te verwijderen als er niet-doorgevoerde wijzigingen in die map aanwezig zijn.
Een gebruiker bewerkt bijvoorbeeld een bestand in een map en voert geen wijzigingen door. Vervolgens probeert ze het sparse-betaalpatroon te wijzigen om deze map niet op te nemen. In dit geval wordt het patroon geaccepteerd, maar wordt de werkelijke map niet verwijderd. Ze moet het patroon herstellen om die map op te nemen, wijzigingen doorvoeren en vervolgens het nieuwe patroon opnieuw toepassen.
Notitie
U kunt het sparse-uitchecken niet uitschakelen voor een opslagplaats die is gemaakt met de Sparse-betaalmodus ingeschakeld.
Wijzigingen aanbrengen en pushen met sparse-betaling
U kunt bestaande bestanden bewerken en doorvoeren en pushen vanuit de Git-map. Wanneer u nieuwe mappen met bestanden maakt, neemt u deze op in het kegelpatroon dat u voor die opslagplaats hebt opgegeven.
Het opnemen van een nieuwe map buiten het kegelpatroon resulteert in een fout tijdens de doorvoer- en pushbewerking. U kunt dit oplossen door het kegelpatroon te bewerken om de nieuwe map op te nemen die u probeert door te voeren en te pushen.
Patronen voor een configuratiebestand voor een opslagplaats
Het configuratiebestand voor doorvoeren maakt gebruik van patronen die vergelijkbaar zijn met gitignore-patronen en doet het volgende:
- Positieve patronen maken opname van uitvoer mogelijk voor overeenkomende notebooks.
- Negatieve patronen schakelen uitvoeropname uit voor overeenkomende notebooks.
- Patronen worden geëvalueerd op volgorde van alle notitieblokken.
- Ongeldige paden of paden die niet worden omgezet in
.ipynb
notebooks, worden genegeerd.
Positief patroon: Als u uitvoer van een notebookpad folder/innerfolder/notebook.ipynb
wilt opnemen, gebruikt u de volgende patronen:
**/*
folder/**
folder/innerfolder/note*
Negatief patroon: Als u uitvoer voor een notebook wilt uitsluiten, controleert u of geen van de positieve patronen overeenkomt of een negatief patroon toevoegt op een juiste plek van het configuratiebestand. Negatieve patronen (uitsluiten) beginnen met !
:
!folder/innerfolder/*.ipynb
!folder/**/*.ipynb
!**/notebook.ipynb
Beperking voor het parseren van uitchecken
Sparse-betaling werkt momenteel niet voor Azure DevOps-opslagplaatsen die groter zijn dan 4 GB.
Een opslagplaats toevoegen en later verbinding maken
Als u git-mappen programmatisch wilt beheren en ermee wilt werken, gebruikt u de REST API voor Git-mappen.