Fájlmódosítások figyelmen kívül hagyása a Gittel

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

Visual Studio 2019 | Visual Studio 2022

A Gitnek nem szabad nyomon követnie a projekt minden fájlját. A fejlesztési környezetből származó ideiglenes fájlok, a tesztkimenetek és a naplók mind olyan fájlok, amelyeket valószínűleg nem kell nyomon követni.

Különböző mechanizmusokkal tudathatja a Git-et, hogy a projekt mely fájljait ne kövesse nyomon, és győződjön meg arról, hogy a Git nem fogja jelenteni az adott fájlok módosításait. Olyan fájlok esetén, amelyeket a Git nem követ nyomon, használhat egy vagy exclude több .gitignore fájlt. A Git által nyomon követett fájlok esetében megadhatja a Gitnek, hogy hagyja abba a nyomon követésüket, és hagyja figyelmen kívül a módosításokat.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Hagyja figyelmen kívül a nem követett fájlok módosításait egy .gitignore fájl használatával.
  • Hagyja figyelmen kívül a nem követett fájlok módosításait egy exclude fájl használatával.
  • Állítsa le a fájlok nyomon követését, és hagyja figyelmen kívül a módosításokat a git update-index parancs használatával.
  • Állítsa le a fájlok nyomon követését, és hagyja figyelmen kívül a módosításokat a git rm parancs használatával.

.gitignore-fájl használata

Egy .gitignore-fájl hozzáadásával és konfigurálásával megadhatja a Gitnek, hogy ne kövesse nyomon a projekt bizonyos fájljait. A .gitignore fájl bejegyzései csak a nem követett fájlokra vonatkoznak. Nem akadályozzák meg, hogy a Git a követett fájlok módosításait jelentse. A nyomon követett fájlok az utolsó Git-pillanatképben véglegesített és létező fájlok.

A fájl minden sora .gitignore a fájl elérési úthoz .gitignore viszonyított keresési mintáját adja meg. A .gitignore szintaxis rugalmas, és támogatja a helyettesítő karakterek használatát az egyes vagy több fájl név, bővítmény és elérési út szerinti megadásához. A Git a keresési mintákat a projekt fájljaival egyezően .gitignore határozza meg, hogy mely fájlokat hagyja figyelmen kívül.

Általában hozzáad egy .gitignore fájlt a projekt gyökérmappájához. Azonban bármely projektmappához hozzáadhat egy .gitignore fájlt, hogy a Git tudja, mely fájlokat hagyja figyelmen kívül az adott mappában és annak almappáiban bármilyen beágyazott mélységben. Több .gitignore fájl esetében a fájlkeresési minták, amelyeket egy .gitignore fájl egy mappában határoz meg, elsőbbséget élveznek a szülőmappában megadott mintákkal .gitignore szemben.

Manuálisan is létrehozhat egy .gitignore fájlt, és fájlminta-bejegyzéseket adhat hozzá. Vagy időt takaríthat meg, ha letölt egy .gitignore sablont a fejlesztői környezethez a GitHub gitignore adattárából. A fájlok használatának .gitignore egyik előnye, hogy véglegesítheti a módosításokat, és megoszthatja másokkal.

Feljegyzés

Git-adattár létrehozásakor a Visual Studio automatikusan létrehoz egy .gitignore fájlt a Visual Studio fejlesztői környezetéhez.

A Visual Studio 2022 Git-verziókövetési felületet biztosít a Git menü, a Git-módosítások és a helyi menük segítségével Megoldáskezelő. 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 kattintson a jobb gombbal az összes olyan módosított fájlra, amelyet a Git figyelmen kívül szeretne hagyni, majd válassza a Helyi elem figyelmen kívül hagyása vagy A bővítmény figyelmen kívül hagyása lehetőséget. Ezek a menübeállítások nem léteznek a követett fájlokhoz.

Képernyőkép a Visual Studio Git Changes ablakában a módosított fájlok helyi menüjének beállításairól.

A Helyi elem mellőzése beállítás új bejegyzést ad hozzá a .gitignore fájlhoz, és eltávolítja a kijelölt fájlt a módosított fájlok listájából.

A Bővítmény figyelmen kívül hagyása beállítás új bejegyzést ad hozzá a .gitignore fájlhoz, és eltávolítja a kijelölt fájllal megegyező kiterjesztésű összes fájlt a módosított fájlok listájából.

Bármelyik beállítás létrehoz egy .gitignore fájlt, ha még nem létezik az adattár gyökérmappájában, és hozzáad hozzá egy bejegyzést.

Gitignore-fájl szerkesztése

A fájl minden bejegyzése .gitignore vagy: egy fájlkeresési minta, amely meghatározza, hogy mely fájlokat hagyja figyelmen kívül, egy számjellel (#) kezdődő megjegyzést vagy egy üres sort (olvashatóság érdekében). A .gitignore szintaxis rugalmas, és támogatja a helyettesítő karakterek használatát az egyéni vagy több fájl név, bővítmény és elérési út szerinti megadásához. A fájlkeresési minták minden elérési útja a .gitignore fájlhoz képest van.

Íme néhány példa a gyakori fájlkeresési mintákra:

# Ignore all files with the specified name.
# Scope is all repo folders.
config.json

# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json

# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json

# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile

# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile

# Ignore all files in the 'logs' subfolder.
/logs/

Amint módosít egy .gitignore fájlt, a Git frissíti azoknak a fájloknak a listáját, amelyeket figyelmen kívül hagy.

Feljegyzés

A Windows-felhasználóknak perjelet (/) kell használniuk egy fájl elérési útelválasztójaként .gitignore a fordított perjel (\) használata helyett. Minden felhasználónak hozzá kell adnia egy záró perjelet egy mappa megadásakor.

Globális .gitignore-fájl használata

Kijelölhet egy .gitignore fájlt globális figyelmen kívül hagyó fájlként, amely az összes helyi Git-adattárra vonatkozik. Ehhez használja a git config következő parancsot:

git config core.excludesfile <gitignore file path>

A globális .gitignore fájlokkal biztosítható, hogy a Git ne véglegesítsen bizonyos fájltípusokat, például a lefordított bináris fájlokat egyetlen helyi adattárban sem. Az adattár-specifikus .gitignore fájlok fájlkeresési mintái elsőbbséget élveznek a globális .gitignore fájlok mintáival szemben.

Kizárási fájl használata

A fájl keresési mintáinak bejegyzéseit a helyi adattár mappájában .git/info/ is hozzáadhatja a fájlhozexclude. A exclude fájl tájékoztatja a Gitet, hogy mely nem követett fájlokat hagyja figyelmen kívül. Ugyanazt a szintaxist használja a fájlkeresési mintákhoz, mint egy .gitignore fájl.

Egy exclude fájl bejegyzései csak a nem követett fájlokra vonatkoznak. Nem akadályozzák meg, hogy a Git a már nyomon követett véglegesített fájlok módosításait jelentse. Tárházbanként csak egy exclude fájl létezik.

Mivel a Git nem véglegesíti vagy leküldi a exclude fájlt, nyugodtan figyelmen kívül hagyhatja a helyi rendszer fájljait anélkül, hogy bárki másra hatással lenne.

A git update-index használata a módosítások figyelmen kívül hagyásához

Néha célszerű ideiglenesen leállítani egy helyi adattárfájl követését, és a Git figyelmen kívül hagyni a fájl módosításait. Előfordulhat például, hogy testre szeretne szabni egy beállításfájlt a fejlesztői környezethez a módosítások véglegesítésének kockázata nélkül. Ehhez a következő jelölővel futtathatja a git update-indexskip-worktree parancsot:

git update-index --skip-worktree <file path>

A nyomkövetés folytatásához futtassa a git update-index parancsot a --no-skip-worktree jelölővel.

Vagy ideiglenesen leállíthatja a fájlok nyomon követését, és a Git figyelmen kívül hagyhatja a fájl módosításait a git update-index jelölővel ellátott assume-unchanged paranccsal. Ez a beállítás kevésbé hatékony, mint a skip-worktree jelző, mert a fájltartalmat módosító Git-művelet visszaállíthatja a jelzőt pullassume-unchanged .

git update-index --assume-unchanged <file path>

A nyomkövetés folytatásához futtassa a git update-index parancsot a --no-assume-unchanged jelölővel.

A git rm használata a módosítások figyelmen kívül hagyásához

Egy vagy exclude több .gitignore fájl bejegyzései nem befolyásolják a Git által már nyomon követett fájlokat. A Git nyomon követi a korábban véglegesített fájlokat. Ha véglegesen el szeretne távolítani egy fájlt a Git-pillanatképből, hogy a Git többé ne kövesse nyomon, de anélkül, hogy törölné azt a fájlrendszerből, futtassa a következő parancsokat:

git rm --cached <file path>
git commit <some message>

Ezután használjon egy vagy exclude egy .gitignore fájlbejegyzést, hogy a Git ne jelentse a fájl módosításait.

Következő lépések