A Gitnek van egy tárhelynek nevezett területe, ahol ideiglenesen tárolhat egy pillanatképet a módosításokról, anélkül, hogy elkötelezné őket a tárba. Külön van a munkakönyvtártól, az átmeneti területtől vagy a tárolótól.
Ez a funkció akkor hasznos, ha olyan ágakat módosított, amelyeket még nem áll készen vállalni, de át kell váltania egy másik ágra.
Stash Changes
A módosítások tárolásába való mentéséhez futtassa a következő parancsot:
git stash save "optional message for yourself"
Ez elmenti a változtatásokat, és visszaállítja a munkakönyvtárat arra, amilyennek látszott a legújabb véglegesítéshez. A tárolt változtatások az adott lerakat bármely ágából elérhetők.
Ne feledje, hogy az elrejteni kívánt módosításoknak nyomon követett fájlokon kell lenniük. Ha létrehozott egy új fájlt, és megpróbálja elrejteni a módosításokat, előfordulhat, hogy megkapja a hibát No local changes to save
.
Tárolt változások megtekintése
Ha meg szeretné tudni, hogy mi van a tárában, futtassa a parancsot:
git stash list
Ez a formátumban visszaadja a mentett pillanatfelvételek listáját stash@{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE
. A stash@{0}
rész a tárolás neve, a göndör zárójelben lévő szám ( { }
) pedig az adott tárolás indexe. Ha több változáskészlet van elraktározva, mindegyiknek más és más indexe lesz.
Ha elfelejtette, hogy milyen változtatásokat hajtottak végre a tárhelyen, akkor láthatja azok összefoglalását git stash show NAME-OF-STASH
. Ha meg akarja tekinteni a tipikus diff stílusú patch elrendezést (a soronkénti változtatásokhoz a + és a), akkor felveheti a -p
(javításhoz) opciót. Íme egy példa:
git stash show -p stash@{0} # Example result: diff --git a/PathToFile/fileA b/PathToFile/fileA index 2417dd9..b2c9092 100644 --- a/PathToFile/fileA +++ b/PathToFile/fileA @@ -1,4 +1,4 @@ -What this line looks like on branch +What this line looks like with stashed changes
Tárolt változások letöltése
Kétféle lehetőség van a tárolóból történő módosítások lekérésére és az aktuális fiókra történő alkalmazásra:
git stash apply STASH-NAME
alkalmazza a módosításokat, és egy példányt a tárolóban hagygit stash pop STASH-NAME
alkalmazza a módosításokat és eltávolítja a fájlokat a tárolóból
A változtatások alkalmazásakor ütközések lehetnek. Megoldhatja az egyesítéshez hasonló konfliktusokat (lásd git merge
a részleteket).
Tárolt változtatások törlése
Ha az elrejtett módosításokat anélkül szeretné eltávolítani, hogy végrehajtaná őket, futtassa a következő parancsot:
git stash drop STASH-NAME
A teljes tárolás törléséhez futtassa a parancsot:
git stash clear