Sim*_*ast 5 git batch-file errorlevel
在我的 BAT 文件中运行一些命令之前,我试图弄清楚如何验证用户是否在正确的分支上。
执行此类检查的最佳方法是什么...
IF (on "master" git branch) THEN
...
ELSE
...
Run Code Online (Sandbox Code Playgroud)
您可以使用该命令确定您所在的分支git branch,因此我们将使用该命令的输出进行检查。星号将标记当前分支,如下所示:
D:\>git branch
master
* staging
Run Code Online (Sandbox Code Playgroud)
我们可以将此输出传送到find命令,然后传送到IF语句:
git branch | find "* master" > NUL & IF ERRORLEVEL 1 (
ECHO I am NOT on master
) ELSE (
ECHO I am on master
)
Run Code Online (Sandbox Code Playgroud)
只是> NUL使 的输出静音find。如果在输出中的任何位置都找不到该字符串,
find则会触发。ERRORLEVEL 1
使用以下命令仅返回当前分支:
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
FINDSTR 可以使用正则表达式来匹配分支名称:
FINDSTR /r /c:"^master$"
Run Code Online (Sandbox Code Playgroud)
除了 git rev-parse 使用 LF 而不是 CRLF 作为行结尾之外,这是有效的,而正则表达式中的行尾匹配正在寻找 CR。添加 FIND /v "" 将 LF 更改为 CRLF 结果如下:
git rev-parse --abbrev-ref HEAD | find /v "" | findstr /r /c:"^master$" > NUL & IF ERRORLEVEL 1 (
ECHO I am NOT on master
) ELSE (
ECHO I am on master
)
Run Code Online (Sandbox Code Playgroud)
这将匹配分支“master”,但不匹配包含单词 master 的分支名称。
| 归档时间: |
|
| 查看次数: |
3951 次 |
| 最近记录: |