Code bijwerken met ophalen, samenvoegen en ophalen

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Wanneer er verschillende inzenders voor een project zijn, houdt u uw lokale Git-opslagplaats bijgewerkt door werk te downloaden en te integreren dat anderen hebben geüpload naar de externe opslagplaats van het project. Met deze Git-opdrachten werkt u uw lokale opslagplaats bij:

  • Git haalt nieuwe doorvoeringen op die anderen naar de externe opslagplaats hebben geüpload. De vertakkingen voor extern bijhouden in de lokale opslagplaatscache worden bijgewerkt. Lokale vertakkingen blijven ongewijzigd.
  • Git Merge integreert doorvoeringen van een of meer bronbranches in een doelbranch.
  • Git rebase integreert doorvoeringen vanuit een bronvertakking in een doelvertakking, maar maakt gebruik van een andere strategie dan Git-samenvoeging.
  • Git-pull voert een ophaalbewerking uit en vervolgens een samenvoeging of rebase om opgehaalde doorvoeringen te integreren in uw huidige lokale vertakking.

Visual Studio maakt gebruik van een subset van deze Git-opdrachten wanneer u uw lokale opslagplaats synchroniseert met een externe opslagplaats.

Zie de zelfstudie Over Git-opslagplaatsen in Azure voor een overzicht van de Git-werkstroom.

Dit artikel bevat procedures voor de volgende taken:

  • Wijzigingen downloaden met ophalen
  • Vertakkingen bijwerken met samenvoegen of opnieuwbase
  • Wijzigingen downloaden en vertakkingen bijwerken met pull

Wijzigingen downloaden met ophalen

Git haalt externe vertakkingen op en bestandsobjecten waarnaar wordt verwezen, die niet bestaan in uw lokale opslagplaats en werkt de vertakkingen voor extern bijhouden bij in de lokale opslagplaatscache. Vertakkingen voor extern bijhouden zijn lokaal in de cache opgeslagen kopieën van externe vertakkingen en zijn niet uw lokale vertakkingen. Git fetch werkt uw lokale vertakkingen niet bij. Als een externe opslagplaats die is aangewezen door origin een bugfix3 vertakking, werkt Git fetch bijvoorbeeld de vertakking voor extern bijhouden bij met de naam origin/bugfix3 en niet uw lokale bugfix3 vertakking. U kunt vertakkingen voor extern bijhouden gebruiken voor het volgende:

  • Vergelijk een vertakking voor extern bijhouden met een lokale vertakking om opgehaalde wijzigingen te bekijken.
  • Een vertakking voor extern bijhouden samenvoegen in een lokale vertakking.
  • Maak een nieuwe lokale vertakking vanuit een vertakking voor extern bijhouden.

Visual Studio 2022 biedt een Git-versiebeheer met behulp van het Git-menu, Git-wijzigingen en via contextmenu's in Solution Explorer. Visual Studio 2019 versie 16.8 biedt ook de Git-gebruikersinterface van Team Explorer . Zie het tabblad Visual Studio 2019 - Team Explorer voor meer informatie.

  1. Kies Ophalen in het venster Git-wijzigingen. Selecteer vervolgens uitgaand/binnenkomend om het venster Git-opslagplaats te openen.

    Schermopname van de knoppen Ophalen en binnenkomende koppeling in het venster Git Changes van Visual Studio 2019.

    U kunt ook Ophalen kiezen in het Git-menu.

    Schermopname van de optie Ophalen in het Git-menu in Visual Studio 2019.

  2. In het venster Git-opslagplaats worden opgehaalde doorvoeringen weergegeven in de sectie Binnenkomend . Selecteer een opgehaalde doorvoering om de lijst met gewijzigde bestanden in die doorvoering weer te geven. Selecteer een gewijzigd bestand om een diff-weergave van gewijzigde inhoud weer te geven.

    Schermopname van het menu Git-opslagplaats in Visual Studio 2019.

Tip

Ophalen verwijdert geen vertakkingen voor extern bijhouden in uw lokale opslagplaatscache die geen externe tegenhanger meer hebben. Visual Studio configureren om verouderde vertakkingen voor extern bijhouden te verwijderen tijdens ophalen:

  • Selecteer Extra opties>>broncodebeheer>git global Instellingen.
  • Stel de externe vertakkingen van Prune in tijdens het ophalen op True.

Nadat een Git is opgehaald, kunt u een lokale vertakking vergelijken met de bijbehorende vertakking voor extern bijhouden om te zien wat er in de externe vertakking is gewijzigd. Als u besluit uw huidige lokale vertakking bij te werken met opgehaalde wijzigingen, kunt u een Git-samenvoeging uitvoeren of opnieuwbaseen. U kunt ook Git-pull uitvoeren, die een Git-ophaalbewerking combineert met een Git-samenvoeging of een nieuwe basis. Git-samenvoeging en Git-rebase werken een doelvertakking bij door doorvoeringen vanuit een bronvertakking erop toe te passen. Git-samenvoeging en Git-rebase gebruiken echter verschillende strategieën. Zie Update-vertakkingen met samenvoegen of opnieuwbaseen en Wanneer om opnieuw tebaseen versus samenvoegen voor meer informatie.

Vertakkingen bijwerken met samenvoegen of opnieuwbase

Git-samenvoeging en Git-rebase integreren doorvoeringen vanuit een bronvertakking in uw huidige lokale vertakking (doelvertakking). Git-samenvoeging voert een fast-forward of een no-fast-forward-samenvoeging uit. De no-fast-forward merge wordt ook wel een drierichtingssamenvoeging of echte samenvoeging genoemd. Git-rebase is een ander type samenvoeging. Deze samenvoegtypen worden weergegeven in het volgende diagram.

Diagram met de voor- en nadoorvoeringen bij het gebruik van samenvoegen en opnieuw basisen.

Git-samenvoeging en Git-rebaseworden uitgebreid gebruikt in de Git-werkstroom. Wanneer u werkt aan een lokale functie of bugfix-vertakking, is het gebruikelijk om het volgende te doen:

  1. Houd uw lokale main vertakking actueel met zijn externe tegenhanger door periodiek op te halen om externe doorvoeringen op te halen en samen te voegen.
  2. Integreer lokale main vertakkingsupdates in uw lokale functievertakking met behulp van een nieuwe basis of samenvoeging.
  3. Maak een back-up van uw werk aan de lokale functievertakking door deze naar de bijbehorende externe vertakking te pushen .
  4. Wanneer de functie is voltooid, maakt u een pull-aanvraag om uw externe functiebranch samen te voegen in de externe main vertakking.

Deze aanpak helpt u bij het volgende:

  • Houd rekening met recente werkzaamheden van anderen die van invloed kunnen zijn op uw werk.
  • Los eventuele conflicten tussen uw werk en die van anderen onmiddellijk op.
  • Pas uw nieuwe functie toe op actuele projectinhoud.
  • Ontvang een pull-aanvraagbeoordeling van uw werk.

Samenvoeging

Als voor Git-samenvoeging de punt van de doelvertakking bestaat in de bronvertakking, is het standaardsamenvoegingstype een snelle samenvoeging. Anders is het standaardsamenvoegingstype geen snelle samenvoeging.

Een snelle Git-samenvoeging kan nooit een samenvoegingsconflict hebben, omdat Git geen fast-forward-samenvoeging toepast als de tip van de doelvertakking afwijkt van de bronvertakking. Git maakt standaard gebruik van een snelle samenvoeging, indien mogelijk. Git past bijvoorbeeld een snelle samenvoeging toe op een lokale vertakking die u alleen bijwerkt door het ophalen van de externe tegenhangervertakking.

Een no-fast-forward Git-samenvoeging genereert een nieuwe doelvertakking 'doorvoer samenvoegen' waarmee wijzigingen in de bronvertakking worden geïntegreerd met wijzigingen in de doelvertakking. De toepasselijke wijzigingen zijn wijzigingen die zijn aangebracht na de laatste doorvoering die gebruikelijk is voor beide vertakkingen. In het voorgaande diagram is doorvoer C de laatste algemene doorvoering in beide vertakkingen. Als een bronvertakkingswijziging conflicteert met een doelvertakkingswijziging, wordt u door Git gevraagd het samenvoegingsconflict op te lossen. De samenvoegdoorvoering (L) bevat de geïntegreerde bronbranch en doelbranch. De bron- en doelvertakkingstips (K en E) zijn de ouders van de samenvoegingsdoorvoering. In de doorvoergeschiedenis van uw vertakking is een samenvoegingsdoorvoering een handige markering voor een samenvoegbewerking en wordt duidelijk weergegeven welke vertakkingen zijn samengevoegd.

Git-samenvoeging wijzigt alleen de doelbranch. De bronbranch blijft ongewijzigd. Wanneer u een of meer samenvoegingsconflicten tegenkomt, moet u deze oplossen om de samenvoeging te voltooien. U kunt de samenvoegbewerking ook annuleren en de doelbranch terugsturen naar de vorige status.

Zie de Git-referentiehandleiding en git-samenvoegstrategieën voor meer informatie over samenvoegopties en strategieën voor samenvoeging.

Tip

Als de bronvertakking een vertakking voor extern bijhouden is, moet u ervoor zorgen dat de vertakking up-to-date is door een Git-ophaalbewerking uit te voeren vóór de samenvoegbewerking.

  1. Kies Git > Manage Branches in de menubalk om het venster Git-opslagplaats te openen.

    Schermopname van de optie Branches beheren in het Git-menu van Visual Studio 2019.

  2. Klik in het venster Git-opslagplaats met de rechtermuisknop op de doelvertakking en selecteer Uitchecken.

    Schermopname van de optie Uitchecken in het venster Git-opslagplaats van Visual Studio 2019.

  3. Klik met de rechtermuisknop op de bronvertakking en selecteer Bronvertakking samenvoegen in doelvertakking>.<<>

    Schermopname van de optie Samenvoegen in het venster Git-opslagplaats van Visual Studio 2019.

  4. Visual Studio geeft een bevestigingsbericht weer na een geslaagde samenvoeging.

    Schermopname van het bevestigingsbericht voor samenvoegen in het venster Git-opslagplaats van Visual Studio 2019.

    Als de samenvoeging wordt gestopt vanwege samenvoegingsconflicten, ontvangt u een melding van Visual Studio. U kunt de conflicten oplossen of de samenvoeging annuleren en terugkeren naar de status vooraf samenvoegen.

    Schermopname van het bericht over samenvoegingsconflicten in het venster Git-opslagplaats van Visual Studio 2019.

Rebase

Git rebase resequences de doorvoergeschiedenis van de doelvertakking zodat deze alle bronvertakking doorvoeringen bevat, gevolgd door alle doorvoeringen van de doelvertakking sinds de laatste algemene doorvoering. Een andere manier om het te bekijken, is dat een Git-opslagplaats de wijzigingen in uw doelvertakking opnieuw afspeelt boven op de geschiedenis van de bronvertakking. Als een bronvertakkingswijziging conflicteert met een doelvertakkingswijziging, wordt u door Git gevraagd het samenvoegingsconflict op te lossen. Git-rebase maakt geen samenvoegdoorvoering. Git wijzigt met name de volgorde van de bestaande doorvoeringen voor de doelvertakking, wat niet het geval is voor de andere samenvoegstrategieën. In het voorgaande diagram bevat doorvoer K dezelfde wijzigingen als K, maar heeft een nieuwe doorvoer-id omdat deze wordt gekoppeld aan doorvoeren E in plaats van C.

Git wijzigt alleen de doelvertakking. De bronvertakking blijft ongewijzigd. Wanneer u een of meer samenvoegingsconflicten tegenkomt, moet u deze oplossen om de basis te voltooien. Of u kunt de herbasisbewerking annuleren en de doelvertakking terugsturen naar de vorige status.

Als u de enige persoon bent die aan uw functie- of bugfixvertakking werkt, kunt u Overwegen om Git-rebase te gebruiken om nieuwe main vertakkingen erin te integreren. Gebruik anders Git-samenvoeging. Zie Wijzigingen toepassen met rebase en Rebase vs Merge voor meer informatie over Git-rebase en wanneer u deze wilt gebruiken.

Tip

Als de bronvertakking een vertakking voor extern bijhouden is, moet u ervoor zorgen dat de vertakking up-to-date is door een Git-ophaalbewerking uit te voeren vóór de herbase.

  1. Kies Git > Manage Branches om het venster Git-opslagplaats te openen.

    Schermopname van de optie Branches beheren in het Git-menu van Visual Studio 2019.

  2. Klik in het venster Git-opslagplaats met de rechtermuisknop op de doelvertakking en selecteer Uitchecken.

    Schermopname van de optie Uitchecken in het contextmenu van de vertakking in het venster Git-opslagplaats van Visual Studio 2019.

  3. Klik met de rechtermuisknop op de bronvertakking en selecteer Rebase-doelvertakking><op <de bronvertakking>.

    Schermopname van de optie Rebase in het contextmenu van de vertakking in het venster Git-opslagplaats van Visual Studio 2019.

  4. Visual Studio geeft een bevestigingsbericht weer na een geslaagde herbase.

    Schermopname van het bevestigingsbericht voor opnieuwbase in het venster Git-opslagplaats van Visual Studio 2019.

    Als de rebase is gestopt vanwege samenvoegingsconflicten, ontvangt u een melding van Visual Studio. U kunt de conflicten oplossen of de rebase annuleren en terugkeren naar de status van de pre-rebase.

    Schermopname van het bericht rebaseconflict in het venster Git-opslagplaats van Visual Studio 2019.

Wijzigingen downloaden en vertakkingen bijwerken met pull

Git pull combineert standaard een Git-ophaalbewerking en een Git-samenvoeging om uw huidige lokale vertakking bij te werken vanuit de externe tegenhanger. Optioneel kan Git-pull een Git-rebase uitvoeren in plaats van een Git-samenvoegbewerking.

In tegenstelling tot Git-ophalen wordt uw huidige lokale vertakking onmiddellijk bijgewerkt na het downloaden van nieuwe doorvoeringen vanuit de externe opslagplaats. Gebruik Git-pull wanneer u weet dat u uw huidige lokale vertakking direct na het ophalen van Git wilt bijwerken.

Tip

Visual Studio configureren om opnieuw te worden gebaseerd in plaats van samen te voegen wanneer u pullt:

  1. Ga in het Git-menu naar de algemene Instellingen extra>opties>voor>broncodebeheer voor Git.
  2. Stel de lokale Rebase-vertakking in wanneer u de optie Truevoor ophalen ophaalt.
  1. Kies Pull in het venster Git-wijzigingen.

    Schermopname van de knop Pull in het venster Git Changes van Visual Studio 2019.

    U kunt ook Pull kiezen in het Git-menu.

    Schermopname van de optie Pull in het Git-menu in Visual Studio 2019.

  2. Er wordt een bevestigingsbericht weergegeven wanneer de pull-bewerking is voltooid.

    Schermopname van het bevestigingsbericht voor pull in het venster Git-wijzigingen in Visual Studio 2019.

    Als er conflicten zijn tijdens het samenvoegingsgedeelte van de pull-bewerking, ontvangt u een melding van Visual Studio. U kunt de conflicten oplossen of de samenvoeging annuleren en terugkeren naar de status vooraf samenvoegen.

    Schermopname van het pull-conflictbericht in het venster Git-wijzigingen in Visual Studio 2019.

Notitie

In Visual Studio voert Sync een pull uit en vervolgens een push om een lokale en externe vertakking te synchroniseren. Zie Git fetch, pull, push en sync gebruiken voor versiebeheer in Visual Studio voor meer informatie over Synchroniseren.

Volgende stappen