gpt4 book ai didi

git - 检查 "git stash"是否 stash 了任何东西

转载 作者:IT王子 更新时间:2023-10-29 01:10:50 28 4
gpt4 key购买 nike

我有一个 Windows 命令脚本,旨在将 dev 分支 merge 到项目分支中。它首先读取当前分支名称、存储更改、获取并 merge 开发和项目分支,然后切换回原始分支并 pop 存储。

问题是 stash 可能没有任何变化。这会将之前的存储留在堆栈的顶部。当它到达脚本末尾并 pop 存储时,它会 pop 与当前分支无关的前一个存储。

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 stashGit status 获得反馈以确定是否需要 pop 存储?

最佳答案

git stash 允许您提供消息。您可以使用生成的 token 作为您的消息,这样您就知道它不会与其他 git 存储消息冲突。

然后,当你想检查是否 pop 时,只需检查 git stash list 输出是否包含你的 token 。如果是这样, pop 存储。

关于git - 检查 "git stash"是否 stash 了任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520791/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com