Kód frissítése lekéréssel, egyesítéssel és lekéréssel

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Ha egy projektnek több közreműködője is van, frissítse a helyi Git-adattárat úgy, hogy letölti és integrálja a mások által a projekt távoli adattárára feltöltött munkát. Ezek a Git-parancsok frissítik a helyi adattárat:

  • A Git fetch letölti azokat az új véglegesítéseket, amelyeket mások feltöltöttek a távoli adattárba. A helyi adattár gyorsítótárában lévő távoli követési ágak frissülnek – a helyi ágak változatlanok maradnak.
  • A Git-egyesítés egy vagy több forráság véglegesítéseit integrálja egy célágba.
  • A Git rebase egy forráságból származó véglegesítéseket integrál egy célágba, de más stratégiát használ, mint a Git-egyesítés.
  • A Git-lekérés lekérést, majd egyesítést vagy újrabázist hajt végre a lekért véglegesítések integrálásához az aktuális helyi ágba.

A Visual Studio ezen Git-parancsok egy részhalmazát használja, amikor távoli adattárral szinkronizálja a helyi adattárat.

A Git-munkafolyamat áttekintéséhez tekintse meg az Azure Repos Git oktatóanyagát.

Ez a cikk a következő feladatok eljárásait ismerteti:

  • Módosítások letöltése beolvasással
  • Ágak frissítése egyesítéssel vagy újrabázissal
  • Módosítások letöltése és ágak frissítése lekéréssel

Módosítások letöltése beolvasással

A Git lekéri a távoli ág véglegesítéseit és a hivatkozott fájlobjektumokat, amelyek nem léteznek a helyi adattárban, és frissíti a távoli követési ágakat a helyi adattár gyorsítótárában. A távkövetési ágak helyileg gyorsítótárazott írásvédett példányai a távoli ágaknak, és nem a helyi ágak. A Git-lekérés nem frissíti a helyi ágakat. Ha például egy általuk kijelölt origin távoli adattár rendelkezik egy bugfix3 ágkal, a Git fetch a nevesített origin/bugfix3 távkövetési ágat frissíti, nem pedig a helyi bugfix3 ágat. A távkövetési ágakat a következőre használhatja:

  • Hasonlítson össze egy távoli követési ágat egy helyi ággal a beolvast módosítások áttekintéséhez.
  • Távoli követési ág egyesítése egy helyi ágba.
  • Hozzon létre egy új helyi ágat egy távkövetési ágból.

A Visual Studio 2022 Git-verziókövetési felületet biztosít a Git menü, a Git-módosítások és a Megoldáskezelő helyi menüjének használatával. A Visual Studio 2019 16.8-es verziója a Team Explorer Git felhasználói felületét is kínálja. További információt a Visual Studio 2019 – Team Explorer lapon talál.

  1. A Git-módosítások ablakban válassza a Beolvasás lehetőséget. Ezután válassza ki a kimenő/bejövő elemet a Git-adattár ablakának megnyitásához.

    Képernyőkép a Visual Studio 2019 Git Changes ablakának Beolvasás gombjairól és a Bejövő üzenetek hivatkozásról.

    A Git menüben a Beolvasás lehetőséget is választhatja.

    Képernyőkép a Visual Studio 2019 Git menüjének Beolvasás lehetőségéről.

  2. A Git-adattár ablakában a lekért véglegesítések megjelennek a Bejövő szakaszban. Válasszon ki egy lekért véglegesítést a véglegesítésben módosított fájlok listájának megtekintéséhez. A módosított tartalom diff nézetének megtekintéséhez válasszon ki egy módosított fájlt.

    Képernyőkép a Visual Studio 2019 Git-adattár menüjéről.

Tipp.

A Fetch nem törli a távoli követési ágakat a helyi adattárgyorsítótárban, amelyek már nem rendelkeznek távoli megfelelővel. Ha úgy szeretné konfigurálni a Visual Studiót, hogy az elavult távkövető ágakat metsse ki a beolvasás során:

  • Válassza az Eszközök>beállításai>forrásvezérlő>git globális Gépház lehetőséget.
  • Állítsa be a távoli ágak metszetét a beolvasás során a következőre: .True

A Git-lekérések után összehasonlíthat egy helyi ágat a hozzá tartozó távkövetési ággal, hogy lássa, mi változott a távoli ágon. Ha úgy dönt, hogy frissíti az aktuális helyi ágat a beolvasott módosításokkal, git-egyesítést vagy újrabázist végezhet. Vagy futtathatja a Git-lekérést, amely egy Git-lekérést egyesít egy Git-egyesítéssel vagy újrabázissal. A Git egyesítése és a Git újrabázisa is frissíti a célágat úgy, hogy egy forráságból származó véglegesítéseket alkalmaz rá. A Git egyesítése és a Git újrabázisa azonban különböző stratégiákat használ. További információkért lásd : Ágak frissítése egyesítéssel vagy újrabázissal , illetve Mikor és mikor kell újrabázist létrehozni az egyesítéssel szemben.

Ágak frissítése egyesítéssel vagy újrabázissal

A Git merge és a Git rebase integrálja a véglegesítéseket egy forráságból az aktuális helyi ágba (célágba). A Git-egyesítés gyors vagy nem gyors előrébb egyesítést hajt végre. A nem gyors előrébb egyesítést háromirányú egyesítésnek vagy igaz egyesítésnek is nevezik. A Git rebase egy másik egyesítési típus. Ezek az egyesítési típusok az alábbi ábrán láthatók.

Az egyesítés és az újrabázis használatakor a véglegesítés előtti és utáni elemet bemutató diagram.

A Git-egyesítés és a Git-újrabázis széles körben használatos a Git-munkafolyamatban. Helyi szolgáltatás vagy hibajavítás ág használata esetén a következő gyakori eljárás:

  1. A távoli véglegesítések beolvasásához és egyesítéséhez rendszeres időközönként lekérheti és egyesítheti a helyi main ágat a távoli megfelelőjével.
  2. Integrálhatja a helyi main ág frissítéseit a helyi szolgáltatáságba egy újrabázis vagy egyesítés használatával.
  3. A helyi szolgáltatáságon végzett munka biztonsági mentéséhez nyomja le a megfelelő távoli ágba.
  4. A szolgáltatás befejezésekor hozzon létre egy lekéréses kérelmet a távoli szolgáltatáság távoli main ágba való egyesítéséhez.

Ez a megközelítés a következőkben nyújt segítséget:

  • Tartsa szem előtt mások legutóbbi munkáját, amelyek hatással lehetnek a munkájára.
  • Azonnal oldja fel a munkája és mások közötti ütközéseket.
  • Alkalmazza az új funkciót a projekt naprakész tartalmaira.
  • Kérje le a lekéréses kérelmek áttekintését a munkájáról.

Összefűzés

Git-egyesítés esetén, ha a célág csúcsa a forráságon belül található, az alapértelmezett egyesítési típus gyors előrébb egyesítés lesz. Ellenkező esetben az alapértelmezett egyesítési típus nem lesz gyors előrébb egyesítés.

A gyorsított Git-egyesítések soha nem tartalmazhatnak egyesítési ütközést , mert a Git nem alkalmaz gyors előrébb egyesítést, ha a célág csúcsa eltér a forráságtól. A Git alapértelmezés szerint gyors előrébb egyesítést használ, amikor csak lehetséges. A Git például gyors egyesítést alkalmaz egy helyi ágra, amelyet csak a távoli megfelelő ágból való lekéréssel frissít.

A nem gyorsan előremutató Git-körlevél létrehoz egy új célág "egyesítési véglegesítést", amely integrálja a forráság módosításait a célág módosításaival. A vonatkozó módosítások a két ágra jellemző utolsó véglegesítés után történtek. Az előző ábrán a C véglegesítés az utolsó közös véglegesítés mindkét ágban. Ha a forráság módosítása ütközik a célág módosításával, akkor a Git kérni fogja, hogy oldja fel az egyesítési ütközést. Az egyesítési véglegesítés (L) tartalmazza az integrált forráságat és a célág módosításait. A forrás- és célágtippek (K és E) a egyesítési véglegesítés szülei. Az ág véglegesítési előzményeiben az egyesítési véglegesítés hasznos jelölője az egyesítési műveletnek, és egyértelműen megmutatja, hogy mely ágak egyesültek.

A Git-egyesítés csak a célágat módosítja – a forráság változatlan marad. Ha egy vagy több egyesítési ütközést tapasztal, fel kell oldania őket az egyesítés befejezéséhez. Vagy megszakíthatja az egyesítési műveletet, és visszaállíthatja a célágat a korábbi állapotba.

Az egyesítési lehetőségekről és stratégiákról további információt a Git referencia-kézikönyvében és a Git egyesítési stratégiáiban talál.

Tipp.

Ha a forráság egy távoli nyomkövetési ág, győződjön meg arról, hogy az ág naprakész, ha egy Git-lekérést futtat az egyesítés előtt.

  1. A Git-adattár ablakának megnyitásához válassza a git-ágak > kezelése lehetőséget a menüsávon.

    Képernyőkép a Visual Studio 2019 Git menüjében az Ágak kezelése lehetőségről.

  2. A Git-adattár ablakában kattintson a jobb gombbal a célágra, és válassza a Kivétel lehetőséget.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában található Checkout lehetőségről.

  3. Kattintson a jobb gombbal a forráságra, és válassza a Forráság> egyesítése <célágba <>lehetőséget.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában található Egyesítés lehetőségről.

  4. A Visual Studio egy megerősítő üzenetet jelenít meg a sikeres egyesítés után.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában megjelenő egyesítés-megerősítési üzenetről.

    Ha az egyesítés egyesítési ütközések miatt leállt, a Visual Studio értesíti Önt. Feloldhatja az ütközéseket, vagy megszakíthatja az egyesítést, és visszatérhet az egyesítés előtti állapotba.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában megjelenő egyesítési ütközésről.

Újrabázis

A Git újralekérdezi a célág véglegesítési előzményeit, hogy az tartalmazza az összes forráság-véglegesítést, majd az összes célág véglegesítését az utolsó közös véglegesítés óta. A megtekintés másik módja, hogy a Git újralejátssza a célág módosításait a forráság előzményei fölé. Ha a forráság módosítása ütközik a célág módosításával, akkor a Git kérni fogja, hogy oldja fel az egyesítési ütközést. A Git rebase nem hoz létre egyesítési véglegesítést. A Git újrabázisa módosítja a meglévő célág-véglegesítések sorrendjét, ami a többi egyesítési stratégia esetében nem így van. Az előző ábrán a K véglegesítés ugyanazokat a módosításokat tartalmazza, mint a K, de új véglegesítési azonosítóval rendelkezik, mivel a C helyett az E véglegesítéshez kapcsolódik.

A Git csak a célágat módosítja – a forráság változatlan marad. Ha egy vagy több egyesítési ütközést tapasztal, fel kell oldania őket az újrabázis befejezéséhez. Vagy megszakíthatja az újrabázisi műveletet, és visszaadhatja a célágat a korábbi állapotba.

Ha Ön az egyetlen személy, aki a funkció- vagy hibajavítási ágon dolgozik, fontolja meg, hogy a Git Rebase használatával integrálja az új main ág-véglegesítéseket. Ellenkező esetben használja a Git-egyesítést. További információ a Git újrabázisáról és használatáról: Módosítások alkalmazása újrabázissal és újrabázissal és egyesítéssel.

Tipp.

Ha a forráság egy távoli követési ág, győződjön meg arról, hogy az ág naprakész, ha egy Git-lekérést futtat az újrabázis előtt.

  1. A Git-tárház ablakának megnyitásához válassza a Git-ágak > kezelése lehetőséget.

    Képernyőkép a Visual Studio 2019 Git menüjében az Ágak kezelése lehetőségről.

  2. A Git-adattár ablakában kattintson a jobb gombbal a célágra, és válassza a Kivétel lehetőséget.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakának ág helyi menüjében található Checkout lehetőségről.

  3. Kattintson a jobb gombbal a forráságra, és válassza a célág> újrabázisa <lehetőséget a forráságra<>.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakának ág helyi menüjében található Rebase lehetőségről.

  4. A Visual Studio egy megerősítést kérő üzenetet jelenít meg a sikeres újrabázis után.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában megjelenő újrabázis-megerősítési üzenetről.

    Ha az újrabázis egyesítési ütközések miatt leállt, a Visual Studio értesíti Önt. Feloldhatja az ütközéseket, vagy megszakíthatja az újrabázist, és visszatérhet az újrabázis előtti állapotba.

    Képernyőkép a Visual Studio 2019 Git-adattár ablakában található újrabázisütközés üzenetéről.

Módosítások letöltése és ágak frissítése lekéréssel

A Git-lekérés alapértelmezés szerint egy Git-lekérést és egy Git-egyesítést egyesít az aktuális helyi ág távoli megfelelőjéről való frissítéséhez. Ha szeretné, a Git-lekérés git-egyesítés helyett git-újrabázist is végrehajthat.

A Git-lekéréssel ellentétben a Git-lekérés azonnal frissíti az aktuális helyi ágat, miután letölti az új véglegesítéseket a távoli adattárból. Git-lekérést akkor használjon, ha tudja, hogy közvetlenül a Git-lekérés után frissíteni szeretné az aktuális helyi ágat.

Tipp.

Ha úgy szeretné konfigurálni a Visual Studiót, hogy az egyesítés helyett újrabázist állítson be a lekéréskor:

  1. A Git menüben válassza az Eszközök>beállításai>forrásvezérlő>git globális Gépház.
  2. Állítsa be a helyi ág újrabázisát a lekéréskor a következőre True: .
  1. A Git-módosítások ablakban válassza a Lekérés lehetőséget.

    Képernyőkép a Visual Studio 2019 Git Changes ablakának Lekérés gombjáról.

    A Git menüben a Lekérés lehetőséget is választhatja.

    Képernyőkép a Visual Studio 2019 Git menüjének Lekérés lehetőségéről.

  2. A lekéréses művelet befejeződésekor egy megerősítő üzenet jelenik meg.

    Képernyőkép a Visual Studio 2019 Git Changes ablakában megjelenő lekéréses megerősítési üzenetről.

    Ha a lekéréses művelet egyesítési szakasza során ütközések lépnek fel, a Visual Studio értesíti Önt. Feloldhatja az ütközéseket, vagy megszakíthatja az egyesítést, és visszatérhet az egyesítés előtti állapotba.

    Képernyőkép a Visual Studio 2019 Git Changes ablakában megjelenő lekéréses ütközésről.

Feljegyzés

A Visual Studióban a Sync lekéréses , majd leküldéses műveletet hajt végre egy helyi és távoli ág szinkronizálásához. További információ a Szinkronizálásról: Git-lekérés, lekérés, leküldés és szinkronizálás használata verziókövetéshez a Visual Studióban.

Következő lépések