Han*_*ood 27 git batch-file git-stash
我有一个Windows Command脚本,旨在将dev分支合并到项目分支中.它首先读取当前分支名称,存储更改,获取和合并开发和项目分支,然后切换回原始分支并弹出存储.
问题是存储可能没有任何变化.这使得先前的存储位于堆栈的顶部.当它到达脚本的末尾并弹出存储时,它会弹出与当前分支无关的上一个存储.
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
Run Code Online (Sandbox Code Playgroud)
我如何从中获取反馈Git stash或Git status确定是否需要弹出存储?
Str*_*ids 28
git stash允许您提供消息.您可以使用生成的令牌作为消息,以便您知道它不会与其他git存储消息冲突.
然后,当您想要检查是否弹出时,只需检查git stash list输出是否包含您的令牌.如果是这样,请弹出藏匿处.
Nei*_*man 11
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
Run Code Online (Sandbox Code Playgroud)
小智 7
在 Linux 上,您可以使用git stash list | wc -l来计算 stash 条目的数量。如果没有任何东西可以藏匿,那么这将在您的实际git stash. 我不确定你是否可以在 Windows 上使用它。
| 归档时间: |
|
| 查看次数: |
8678 次 |
| 最近记录: |