Met stashing kun je een kopie bewaren van wijzigingen die je in een repository hebt gemaakt, zonder dat je een commit hoeft te maken.
Het is handig als je van context wisselt, vooral als je heen en weer gaat tussen verschillende bugs of taken in hetzelfde project.
Basisbediening van git stash
Jij kan gebruik git stash om je workflow te vergemakkelijken bij het omgaan met parallelle werklijnen. Stel je voor dat je aan een langlopende taak werkt, met wijzigingen in je lokale werkkopie. Dan komt er iets urgents waar je direct aan moet werken.
De standaard workflow voor het opslaan van wijzigingen is:
- Lokale wijzigingen aanbrengen
- Lokale wijzigingen opbergen
- Opgeslagen wijzigingen opnieuw toepassen
Wanneer u wijzigingen opslaat met behulp van de git stash [push] commando, gaat git terug naar HEAD. Je kunt dan doorgaan met werken aan wat je maar wilt, je committeren aan de repository alsof je nooit de oorspronkelijke wijzigingen hebt aangebracht.
Als je klaar bent met wat je ook maar op een zijspoor heeft gezet, gebruik dan
git stash pop om uw wijzigingen toe te passen en uit de stash te verwijderen. Je kunt je wijzigingen ook toepassen en in de stash bewaren met git stash van toepassing. Dit kan handig zijn als u de wijzigingen snel op meerdere vestigingen wilt toepassen.Werken met meer dan één voorraad
Als je het erg druk hebt, merk je misschien dat je aan meerdere taken tegelijk werkt en moet je ze misschien allemaal opbergen. Maak je geen zorgen, git stash is hiervoor gebouwd.
Elke keer dat je git stash push gebruikt, sla je weer een reeks wijzigingen op. Gebruiken git stash lijst om alles te laten zien wat je hebt opgeslagen. Je ziet iets als dit:
stash@{0}: WIP op hoofd: 2fba62e eerste vastlegging
stash@{1}: WIP op main: 2fba62e eerste commit
Deze berichten zijn niet erg handig, maar je kunt wat aanwijzingen voor jezelf achterlaten door een aangepast bericht toe te voegen wanneer je opbergt:
git stash push -m "derde"
Wanneer u nu een lijst maakt, ziet u uw aangepaste bericht:
stash@{0}: Op hoofd: derde
stash@{1}: WIP op main: 2fba62e eerste commit
De verschillen tussen verschillen weergeven
Om erachter te komen wat er is veranderd in een stash, gebruik git stash show. Zonder verdere argumenten zal het een diff-samenvatting tonen voor de nieuwste stash, die er als volgt uitziet:
$ git stash show
README.md | 3 +++
1 bestand gewijzigd, 3 invoegingen (+)
Je kunt ook een stash-ID doorgeven om een specifiek item op te vragen:
git stash toon stash@{0}
Een filiaal maken vanuit een voorraad
Je zou kunnen besluiten dat de veranderingen in een stash zo belangrijk zijn dat ze het verdienen om in een eigen tak te zitten. Als, maak een nieuwe tak uit de voorraad met behulp van de tak opdracht:
git stash branch
Nogmaals, dit werkt standaard op de meest recente stash, maar je kunt indien nodig een stash-ID opgeven. Git maakt je nieuwe branch vanaf hetzelfde punt in de repository als de stash. Vervolgens past het de wijzigingen uit de stash toe op uw werkkopie.
De opbergruimte opruimen
Er is geen "git unstash"-opdracht. Als u een stash-item wilt verwijderen, gebruikt u drop:
git stash druppel
Nogmaals, dit is standaard de nieuwste, maar u kunt in plaats daarvan een stash-ID opgeven. Als je besluit dat je alles wilt verwijderen wat je hebt opgeslagen, gebruik je deze opdracht:
git stash clear
Gebruik git stash voor Tijdelijke Lichtgewicht Commits
Git-stashes zijn lang niet zo krachtig als volledige repositories. Maar ze bieden op zichzelf nog steeds veel nuttige functionaliteit. Gebruik stashes als je vaak merkt dat je tijdens je werk van branch moet wisselen.
Stashing is slechts een klein onderdeel van git, een programma dat ontzettend veel te bieden heeft.