A Git Stash magyarázata: Hogyan lehet ideiglenesen tárolni a Git helyi változásait

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:

  1. git stash apply STASH-NAME alkalmazza a módosításokat, és egy példányt a tárolóban hagy
  2. git 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 mergea 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