1

我写了一个批处理来从github检查和部署rails应用程序,批处理文件见下文。问题git.exe fetch origin | find "remote: Counting Objects"总是返回errorlevel 1,即使我们有新的提交。我必须先终止 Rails 应用程序,因为某些文件被锁定 ( *.jars) 并导致git pull命令失败。

我搜索并找到了以下主题,但即使使用git.exe而不是git.cmd,问题仍然存在。

我尝试使用临时文件来存储git.exe fetch origin结果,但如果看起来这个命令总是将结果打印到控制台。

还:

git pull | find "Already up-to-date."
if %errorlevel% == 1 (

工作正常

    REM @echo 关闭
    设置路径=%path%;C:\Program Files\Git\bin;D:\jruby-1.6.7\bin
    设置 JRUBY_OPTS=--1.9
    git.exe 获取来源 | 找到“远程:计数对象”
    如果 %errorlevel% == 0 taskkill /f /im:jruby.exe
    混帐拉| 找到“已经是最新的”。
    如果 %errorlevel% == 1 (
    快速眼动
      启动黄瓜.bat
      REM 在更新时做其他事情
    )

    快速轨道
    任务清单 | 找到“jruby.exe”
    如果 %errorlevel%==1 (
     回声@rails s > rail.bat
     回声@exit >> rail.bat
     启动 cmd /c rail.bat
    )
    出口

4

1 回答 1

2

我猜我会说它很糟糕,因为“计数对象”行显示了一个动态进度指示器,但不要引用我的话。

...
git fetch origin
git branch -a --no-merged |find "remotes/origin"
if %errorlevel% == 0 taskkill /f /im:jruby.exe
...

您可能还希望将其限制为仅当前分支:

git branch -a --no-merged |find "remotes/origin/mybranch"
于 2012-05-21T04:50:07.517 回答