我想从Windows批处理文件中自动地本地 checkout 一个分支,查找给定的分支名称模式,例如rc_
,这样我就可以 checkout 最新的候选版本,而不必费心检查哪个是最新的。
如果我有(注意使用prune来确保我有最新的原始分支视图,而不是所有过时的分支):
> git fetch --all --prune
> git branch --all
* master
remotes/origin/HEAD -> origin/master
remotes/origin/branch1
remotes/origin/branch2
remotes/origin/branch3
remotes/origin/rc_1.1.1
我想自动 checkout rc_1.1.1
;我会从Windows bat文件执行以下操作(但不起作用):
git branch --list --all | for /f "tokens=1" %%i in ('findstr \/rc_') do set my_rc_branch=%%i
git checkout %my_rc_branch%
我有两个问题:
...do set my_rc_branch=%%i
不工作,因为在下面的步骤中它总是空的
1.我只需要 checkoutrc_1.1.1
,而不是remotes/origin/rc_1.1.1
,如何才能只将rc_1.1.1
部分放入my_rc_branch
?
1条答案
按热度按时间ddarikpa1#
您的命令应该在括号内,并且为了确保您只匹配leaf(输出路径的最后一项),而不是在分支中的任何地方匹配
/rc_
的任何示例,您可能还应该改进findstr.exe模式: