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.
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.
A Git menüben a Beolvasás lehetőséget is választhatja.
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.
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.
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:
- 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. - 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. - A helyi szolgáltatáságon végzett munka biztonsági mentéséhez nyomja le a megfelelő távoli ágba.
- 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.
A Git-adattár ablakának megnyitásához válassza a git-ágak > kezelése lehetőséget a menüsávon.
A Git-adattár ablakában kattintson a jobb gombbal a célágra, és válassza a Kivétel lehetőséget.
Kattintson a jobb gombbal a forráságra, és válassza a Forráság> egyesítése <célágba <>lehetőséget.
A Visual Studio egy megerősítő üzenetet jelenít meg a sikeres egyesítés után.
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.
Ú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.
A Git-tárház ablakának megnyitásához válassza a Git-ágak > kezelése lehetőséget.
A Git-adattár ablakában kattintson a jobb gombbal a célágra, és válassza a Kivétel lehetőséget.
Kattintson a jobb gombbal a forráságra, és válassza a célág> újrabázisa <lehetőséget a forráságra<>.
A Visual Studio egy megerősítést kérő üzenetet jelenít meg a sikeres újrabázis után.
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.
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:
- A Git menüben válassza az Eszközök>beállításai>forrásvezérlő>git globális Gépház.
- Állítsa be a helyi ág újrabázisát a lekéréskor a következőre
True
: .
A Git-módosítások ablakban válassza a Lekérés lehetőséget.
A Git menüben a Lekérés lehetőséget is választhatja.
A lekéréses művelet befejeződésekor egy megerősítő üzenet jelenik meg.
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.
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.