我有一个Windows命令脚本,用于将dev分支合并到项目分支中。它首先读取当前分支名称,存储更改,获取并合并开发和项目分支,然后切换回原始分支并弹出存储。检查“git stash”是否藏有任何东西
问题是可能没有任何更改存储。这将前面的藏匿物留在堆叠顶部。当它到达脚本的末尾并弹出存储器时,它弹出与当前分支无关的前一个存储器。
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
反馈来确定我是否需要弹出藏匿?
我喜欢这个答案。这是强大的 –