Szerkesztés

Megosztás a következőn keresztül:


A Gittel kapcsolatos gyakori kérdések

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

Ebben a cikkben választ talál a Gitre vonatkozó gyakori kérdésekre, kifejezetten az Azure-adattárakra szabottan. Akár távoli ágakat szeretne kezelni, azonosítani szeretné az aktuális ágat, akár más kevésbé gyakori Git-feladatokat szeretne kezelni, ez az útmutató hasznos tippeket és megoldásokat nyújt. A Git-munkafolyamat továbbfejlesztéséhez és a gyakori problémák megoldásához tekintse át az alábbi szakaszokat.

Hogyan tölthetek le egyszerűen egy távoli ágat a helyi adattáramba?

Először győződjön meg arról, hogy konfigurálta az origin adattárat. Ezt akkor kell használnia, ha klónozta az adattárat a használatával git clone. Ha kivesz egy olyan ágat, amely nem létezik helyileg, a Git ellenőrzi, hogy van-e azonos nevű távoli ág. Ha van ilyen, a Git létrehoz egy helyi ágat, amely a távoli ágra hivatkozik. A véglegesítések letöltéséhez és a fiókelőzmények helyi frissítéséhez használható git pull .

Hogyan deríthetem ki, melyik ágon dolgozom?

Futtassa git branch argumentumok nélkül a helyi ágak megjelenítéséhez és a kivett ág kiemeléséhez. A Visual Studióban az állapotsor az aktuális ágat is megjeleníti, amikor egy helyi Git-adattárban tárolt projekttel dolgozik.

Mikor kell véglegesítenem a Gitet?

Ajánlott külön véglegesítéseket létrehozni a logikailag eltérő módosításokhoz. A véglegesítéseket egy napló bejegyzéseinek tekinti. Amikor módosítást hajt végre, jegyezze fel egy véglegesítésben. Népszerű módszer a gyakori helyi véglegesítések engedélyezése, de a leküldés előtt át kell nyomni őket. Ez rugalmasságot biztosít a véglegesítési előzmények egyszerűsítése mellett.

Ha minden ág megtartja a teljes véglegesítési előzményeit, az nem teszi nehézvé a *main* véglegesítési előzményeit az idő múlásával?

A sok véglegesítéssel és közreműködővel rendelkező nagy projektek olyan ágelőzményeket eredményezhetnek main , amelyek jobban tükrözik a témakörágak fejlesztését, mint a teljes projekt. A Git lehetővé teszi a véglegesítések összecsapását az ágakon a véglegesítések összenyomásával és újrapróbálásával. A véglegesítések összevonásával a fiókelőzmények kevésbé részletesek, így egyszerűbbé válik a főág véglegesítési előzményeinek összevonása.

Hogyan deríthetem ki, hogy ki módosította a fájlokat?

git blame A paranccsal megtudhatja, hogy ki módosította a fájlt. A helyi adattárban futtathatja git blame a -L paramétert, megadva, hogy mely sorok érdekelhetik. Blame formázott kimenetet hoz létre, amelyen a véglegesítés látható, amely legutóbb frissítette a vonalat és a véglegesítést végrehajtó személy nevét.

> git blame Example_repo -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Example User 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame megkeresi a véglegesítési előzményeket. A fájlelőzményeket a webes portálon is áttekintheti, így megállapíthatja, hogy ki és mikor módosította a fájlt. Nyissa meg a Kódkezelőt az adattárhoz és az ághoz, majd válassza ki a kívánt fájlt. Az Azure Repos megjeleníti a fájl véglegesítési előzményeit az aktuális ágon.

Módosítottam néhány fájlt, és most már nem tudok másik ágba bejelentkezni, és nem tudom újrabázisba adni a munkámat.

A Git egy másik ágára való kijelentkezés hatással van a fájlrendszer fájljainak állapotára. A Git a véglegesítési előzmények használatával ellenőrzi, hogy az ág állapotát képviselő fájlokkal dolgozik-e. Ha megkísérli módosítani az ágakat, miközben nem véglegesített módosításokat hajt végre, a rendszer felülírja ezeket a módosításokat a kivétel során. Mivel a Git nem szeretné, hogy véletlenül elveszítse a módosításokat, megakadályozza a kivételt. Két lehetőség áll rendelkezésre:

  • Hagyja abba a módosításokat, és térjen vissza a legutóbbi véglegesítéshez. A Git módosításainak visszavonásával kapcsolatos útmutatást a legutóbbi véglegesítésre való visszaállításhoz talál.
  • Véglegesítse a módosításokat. Tekintse meg a munkát a Gitben véglegesítésekkel való mentésével kapcsolatban.
  • Az aktuális munka eltolása , a módosítások mentése későbbi használatra, és a munkaterület megtisztítása az utolsó véglegesítésig.

A lekéréses kérelem nem tud egyesítést végrehajtani a következő üzenettel: "Nem lehet automatikusan egyesíteni: Az egyik belső Git-objektum (blob, fa, véglegesítés vagy címke) túl nagy, ami TF401022 kivételt okozott. Megpróbálhatja használni az LFS-t, feloszthatja az egyesítést vagy a nagy véglegesítést több kisebbre."

Ez a probléma a nagy bináris fájlokban lévő ütközések egyesítésével kapcsolatos. A fájlok jelenlegi korlátja 100 MB. A megkerülő megoldás az egyesítési ütközések helyi feloldása a cél helyi forrásba való egyesítésével, az ütközések feloldásával és a módosítások leküldésével.

A Git LFS (Large File Storage) nagy bináris fájlok tárolására ajánlott, nem csak az ütközések elkerülése érdekében, hanem az adattár általános méretének kezeléséhez is, ami hatással van a klónozási és leküldési időkre.

Dolgoztam egy kicsit, de valami másra kell váltania. Hogyan menthetem a munkámat későbbre a módosítások véglegesítése nélkül?

Ha véglegesítés nélkül szeretné menteni a módosításokat, használja a Gitet stash. A stash menti az ág aktuális szakaszos és instabil változásait, és visszaállítja az ágat az utolsó véglegesítés állapotára. Ezután átválthat egy másik ágra, elvégezheti a munkáját, majd később futtathatja stash apply a módosításokat.

git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

A (]git stash apply) futtatásakor a rendszer a legutóbb elrejtett módosításokat alkalmazza az aktuális ágra. Ütközés esetén [] visszaállítja az ütköző fájlok módosításait,stash és ütközésjelölőket hoz létre a fájlban. Ebben az esetben manuálisan kell egyesítenie a módosításokat.

Ha végzett a tárolóval, törölje a következővel: [git stash drop]. Ez a parancs eltávolítja az elrejtett módosítások utolsó készletét.

Több adatbázist is használhat, de a kezelésükhöz manuálisabb kezelésre van szükség, mivel explicit módon kell alkalmaznia és el kell dobnia a rejteket. További információ a Git Stash dokumentációjából.

Hogyan módosítható a Git parancssori eszközeinek alapértelmezett szerkesztője?

A parancssori Git alapértelmezés szerint parancssori szerkesztőt használ, amikor véglegesítési üzeneteket kér, újrabázisokat hajt végre, és egyéb olyan munkát végez, amely további információkat igényel. Az alapértelmezett szerkesztő a következő használatával git configvan konfigurálva:

> git config core.editor _path_to_editor_ _options_to_editor_

A Windows Git megkönnyíti a jegyzettömb szerkesztőként való beállítását:

> git config core.editor notepad

Ez a parancs konfigurálja a Windows Jegyzettömbet, hogy szükség szerint szerkessze a Git-információkat, és megfelelően adja át a szöveget a Gitből a Jegyzettömbbe. Megadhatja azt is, hogy

> git config format.commitMessageColumns 72 

A véglegesítési üzenetek szövegoszlopainak megtartása az előnyben részesített 72-es értékre és sortörésre, miután elérte a karakterkorlátot egy vonalon.

Hogyan módosíthatom a véglegesítésekben megjelenített felhasználónevet és e-mailt?

A Git minden véglegesítésben elhelyez egy felhasználónevet és e-mail-címet, az Azure Repos pedig ezeket az adatokat használja a véglegesítések megtekintésekor és a lekéréses kérelmek használatakor. Ha a parancssoron dolgozik, frissítheti a parancs használatával git config megjelenített nevet és e-mail-információkat:

> git config --global user.email "example-user@example-site.com"
> git config --global user.name "Example User"

A --global beállítás beállítja a véglegesítésekben szereplő e-mail-címet és -nevet a rendszeren található összes Git-adattárhoz. Ha egyetlen adattár beállításait szeretné módosítani, át kell váltania arra a könyvtárra, amelyben a Git-adattár található, és a fenti parancsokat a --global jelölő nélkül kell futtatnia.

A név- és e-mail-beállításokat a Visual Studióból is módosíthatja. A Git menü Beállítások párbeszédpaneljén válassza a Git Globális beállítások vagy a Git-adattár általános beállításai lehetőséget>.

A Visual Studio 2019 16.8-s és újabb verziói gites verziókövetési felületet biztosítanak a Team Explorer Git felhasználói felületének fenntartása mellett. A Team Explorer használatához törölje az Eszközök>beállításai>– előzetes verziójú funkciók>új Git felhasználói felületének jelölését a menüsávról. A Git-funkciókat mindkét felületen felcserélheti.

A Team Explorerben válassza a Beállítások lehetőséget, majd a Git alatt válassza a Globális beállítások vagy adattár beállításai hivatkozást.