不能在Windows批处理下的"git.exe获取源"中使用管道



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

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

  • 检查 Git 中是否需要拉取
  • git bash:如何检查是否有新的提交可用

我尝试使用临时文件来存储git.exe fetch origin结果,但如果出现此命令,请始终将结果打印到控制台。

也:

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

工作正常

    快速眼动@echo关闭    设置路径=%路径%;C:\Program Files\Git\bin;D:\jruby-1.6.7\bin    设置JRUBY_OPTS=--1.9    git.exe 获取源 |查找"远程:计数对象"    如果 %errorlevel% == 0 taskkill/f/im:jruby.exe    git 拉取 |找到"已是最新的"。    如果 %错误级别% == 1 (    雷姆      开始黄瓜.bat      REM 在更新时执行其他操作    )    快速眼动导轨    任务列表 |找到"Jruby.exe"    如果 %错误级别%==1 (     回声@rails>轨.bat     回声@exit>>轨.bat     启动CMD/C导轨.bat    )    退出
猜测我会

说它正在崩溃,因为"计数对象"行显示动态进度指示器,但不要引用我的话。

...
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"

最新更新