У меня есть команда Windows script, предназначенная для объединения ветки dev в ветку проекта. Он начинается с чтения текущего имени ветки, смены изменений, выбора и слияния ветвей dev и project, затем переключается обратно в исходную ветвь и выталкивает тайник.
Проблема в том, что не может быть никаких изменений в stash. Это оставляет предыдущий тайник в верхней части стека. Когда он доходит до конца script и выталкивает тайник, он выталкивает предыдущий тайник, который не связан с текущей ветвью.
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
Как я могу получить обратную связь от Git stash
или Git status
, чтобы определить, нужно ли мне всплывать тэг?