Git Stash Pas de versie

Ik heb 2 takken: Master | ontwerp

Werken in het ontwerp Ik deed een stash en ging over naar Master, maakte een aantal aanpassingen. Teruggeschakeld naar ontwerp en deed een stash applyalleen om al mijn wijzigingen in de ontwerptak te verliezen.

Ik hoop dat al mijn werk zich binnen een stash bevindt, omdat ik deze niet heb gewist of verwijderd.

Als ik een stash-lijst doe, krijg ik 4 resultaten:

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

Als ik probeer git stash apply f2c0c72Ik krijg een foutmelding:

fatal: Needed a single revision
f2c0c72: no valid stashed state found

Hoe kan ik een specifieke stash toepassen?


Antwoord 1, Autoriteit 100%

De sleutels in de stash zijn eigenlijk de stash@{n}items aan de linkerkant. Dus probeer:

git stash apply stash@{0}

(Merk op dat in sommige schelpen die u moet citeren "stash@{0}", zoals zsh, vis en powerShell).

Sinds versie 2.11 is het vrij eenvoudig, u kunt het N Stack-nummer gebruiken in plaats van het gebruik van stash@{n}. Dus nu in plaats van te gebruiken:

git stash apply "stash@{n}"

U kunt typen:

git stash apply n 

om een ​​lijst met stashes te krijgen:

git stash list

In feite stash@{0}is een herziening in git die u kunt overschakelen naar … maar git stash apply ...zou moeten achterhalen hoe u DTRT om het toe te passen op uw huidige locatie.


Antwoord 2, Autoriteit 24%

Om een ​​stash toe te passen en deze uit de stash-lijst te verwijderen, voert u uit:

git stash pop stash@{n}

Als u een stash wilt toepassen en in de stashcache wilt bewaren, voert u het volgende uit:

git stash apply stash@{n}

Antwoord 3, autoriteit 6%

Sinds versie 2.11 is het vrij eenvoudig, je kunt het N-stacknummer gebruiken in plaats van "stash@{n}"te zeggen.
Dus nu in plaats van:

git stash apply "stash@{n}"

Je kunt typen:

git stash apply n 

Bijvoorbeeld in uw lijst:

stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust

Als u stash@{1}wilt toepassen, typt u:

git stash apply 1

Anders kun je het gebruiken, zelfs als je sinds 1.7.5.1 enkele wijzigingen in je directory hebt aangebracht, maar je moet er zeker van zijn dat de stash je wijzigingen in de werkdirectory niet zal overschrijven. Als dat het geval is, krijg je een foutmelding:

p>

error: Your local changes to the following files would be overwritten by merge:
        file
Please commit your changes or stash them before you merge.

In versies vóór 1.7.5.1 weigerde het te werken als er een wijziging was in de werkdirectory.


Git-release-opmerkingen:

De gebruiker moet altijd “stash@{$N}” zeggen bij het benoemen van een enkel element
op de standaardlocatie van de stash, d.w.z. reflogs in refs/stash. De
“git stash” commando leerde “git stash apply 4” te accepteren als a
afkorting voor “git stash apply stash@{4}”

git stash apply” werd gebruikt om te weigeren te werken als er een verandering was in de
werkende boom, zelfs wanneer de wijziging niet overlapte met de wijziging de
stash opgenomen


Antwoord 4, autoriteit 4%

Als men zich op een Windows-machine en in PowerShell bevindt, moet men het argument citeren zoals:

git stash apply "stash@{0}"

…of om de wijzigingen toe te passen en uit de voorraad te verwijderen:

git stash pop "stash@{0}"

Anders krijg je zonder de aanhalingstekens deze foutmelding:

fataal: dubbelzinnig argument ‘stash@’: onbekende revisie of pad niet in
de werkende boom.


Antwoord 5

Om je recente werk te bekijken en in welke branch het gebeurde tijdens het uitvoeren

git stash list

selecteer vervolgens de voorraad die u wilt toepassen en gebruik alleen het nummer:

git stash apply n 

Waar n(in het bovenstaande voorbeeld) het nummer is dat overeenkomt met het werk in uitvoering.


Antwoord 6

git Stash list 

Lijst toont alle opgeslagen items, bijvoorbeeld:stash@{0}:,stash@{1}:,..,stash@{n}:

Selecteer vervolgens het getal n dat stash@{n} aangeeft:

git stash apply n 

bijvoorbeeld:

git stash apply 1

past die specifieke stashed-wijzigingen toe op de huidige branch


Antwoord 7

Gewoon eenvoudig te begrijpen maken voor beginners.

Controleer je git stash-lijst met onderstaand commando:

git stash list

En pas dan toe met onderstaand commando:

git stash apply stash@{n}

Bijvoorbeeld: ik pas mijn laatste voorraad toe (de laatste is altijd index {0} bovenaan de voorraadlijst).

git stash apply stash@{0}

Other episodes