untracked stash specific name files git batch-file git-stash

specific - Compruebe si "git stash" escondiĆ³ algo



git stash stack overflow (4)

Tengo un script de comando de Windows diseñado para fusionar la rama dev en una rama de proyecto. Comienza leyendo el nombre de la rama actual, ocultando los cambios, recuperando y fusionando las ramas de desarrollo y proyecto, luego vuelve a la rama original y abre el alijo.

El problema es que puede que no haya ningún cambio al alijo. Esto deja el alijo anterior en la parte superior de la pila. Cuando llega al final de la secuencia de comandos y aparece el alijo, se abre el alijo anterior que no está relacionado con la rama actual.

Set SourceBranch=dev Set ProjectBranch=project :: Stash current changes. For /F "tokens=1,2" %%a In (''Git branch -q'') Do If "%%a"=="*" Set CurrentBranch=%%b Git stash save -u :: Pull latest source branch. Git checkout %SourceBranch% Git pull For /F "tokens=1,3" %%a In (''Git branch -q -v'') Do If "%%a"=="*" Set MergeHash=%%b :: Merge source into project branch. Git checkout %ProjectBranch% Git pull Git merge --commit %MergeHash%||Exit 1 :: Return to original branch. Git checkout %CurrentBranch% Git stash pop

¿Cómo puedo obtener comentarios de Git stash o el Git status para determinar si necesito abrir el alijo?


En Linux, puedes usar git stash list | wc -l git stash list | wc -l para contar el número de entradas ocultas. Si no había nada que esconder, esto devuelve lo mismo antes y después de tu git stash real. No estoy seguro si puedes usar esto en Windows sin embargo.


Usted puede git diff e inspeccionar la salida. Si no hay ninguno, entonces no hay nada que stash . ¿Algún problema con esa estrategia?


git stash permite proporcionar un mensaje. Puedes usar un token generado como tu mensaje para que sepas que no entrará en conflicto con otros mensajes ocultos de git.

Luego, cuando desee verificar si se abre o no, simplemente verifique si la salida de la git stash list contiene su token. Si es así, revienta el alijo.


git stash list #get a listing of all stashes to parse git stash show -p stash@{0} #replace 0 with number of relevant stash from list