Επεξήγηση του Git Stash: Τρόπος προσωρινής αποθήκευσης τοπικών αλλαγών στο Git

Το Git έχει μια περιοχή που ονομάζεται stash, όπου μπορείτε να αποθηκεύσετε προσωρινά ένα στιγμιότυπο των αλλαγών σας χωρίς να τις δεσμεύσετε στο αποθετήριο. Είναι ξεχωριστό από τον κατάλογο εργασίας, την περιοχή στάσης ή το αποθετήριο.

Αυτή η λειτουργικότητα είναι χρήσιμη όταν έχετε κάνει αλλαγές σε ένα υποκατάστημα που δεν είστε έτοιμοι να δεσμεύσετε, αλλά πρέπει να μεταβείτε σε άλλο υποκατάστημα.

Stash Αλλαγές

Για να αποθηκεύσετε τις αλλαγές σας στο stash, εκτελέστε την εντολή:

git stash save "optional message for yourself"

Αυτό αποθηκεύει τις αλλαγές σας και επαναφέρει τον κατάλογο εργασίας σε ό, τι έμοιαζε για την τελευταία δέσμευση. Οι αποθηκευμένες αλλαγές είναι διαθέσιμες από οποιονδήποτε κλάδο σε αυτό το αποθετήριο.

Λάβετε υπόψη ότι οι αλλαγές που θέλετε να αποθηκεύσετε πρέπει να βρίσκονται σε αρχεία που παρακολουθούνται. Εάν δημιουργήσατε ένα νέο αρχείο και προσπαθήσετε να αποκρύψετε τις αλλαγές σας, ενδέχεται να λάβετε το σφάλμα No local changes to save.

Προβολή Stashed Changes

Για να δείτε τι υπάρχει στο αρχείο σας, εκτελέστε την εντολή:

git stash list

Αυτό επιστρέφει μια λίστα με τα αποθηκευμένα στιγμιότυπα σας στη μορφή [email protected]{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE. Το [email protected]{0}μέρος είναι το όνομα του stash και ο αριθμός στα σγουρά τιράντες ( { }) είναι ο δείκτης αυτού του stash. Εάν έχετε πολλά σετ αλλαγής συνόλων, κάθε ένα θα έχει διαφορετικό ευρετήριο.

Εάν ξεχάσατε ποιες αλλαγές έγιναν στο stash, μπορείτε να δείτε μια περίληψη με αυτές git stash show NAME-OF-STASH. Εάν θέλετε να δείτε την τυπική διάταξη επιδιόρθωσης διαφορετικού στυλ (με τα + και τα για αλλαγές γραμμής προς γραμμή), μπορείτε να συμπεριλάβετε την επιλογή -p(για ενημέρωση κώδικα). Ακολουθεί ένα παράδειγμα:

git stash show -p [email protected]{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

Ανάκτηση αποθηκευμένων αλλαγών

Για να ανακτήσετε τις αλλαγές από το stash και να τις εφαρμόσετε στον τρέχοντα κλάδο στον οποίο βρίσκεστε, έχετε δύο επιλογές:

  1. git stash apply STASH-NAME εφαρμόζει τις αλλαγές και αφήνει ένα αντίγραφο στη στοίβα
  2. git stash pop STASH-NAME εφαρμόζει τις αλλαγές και αφαιρεί τα αρχεία από το stash

Ενδέχεται να υπάρχουν διενέξεις όταν εφαρμόζετε αλλαγές. Μπορείτε να επιλύσετε τις διενέξεις παρόμοιες με μια συγχώνευση (δείτε git mergeγια λεπτομέρειες).

Διαγραφή αποθηκευμένων αλλαγών

Εάν θέλετε να καταργήσετε τις αποθηκευμένες αλλαγές χωρίς να τις εφαρμόσετε, εκτελέστε την εντολή:

git stash drop STASH-NAME

Για να διαγράψετε ολόκληρη την αποθήκευση, εκτελέστε την εντολή:

git stash clear