我编写了一个批处理来检查和部署github中的rails应用程序,批处理文件如下所示。问题是git.exe fetch origin | find "remote: Counting Objects"总是返回errorlevel 1,即使我们有新的提交。我必须先终止rails应用程序,因为有些文件被锁定(*.jars)并导致git pull命令失败。
我搜索并找到了下面的主题,但即使使用git.exe而不是git.cmd,问题仍然存在。
Check if pull needed in Git
git bash : how to check if there's a new commit available
我试图使用一个临时文件来存储git.exe fetch origin结果,但是如果看起来这个命令总是将结果打印到控制台。
也:

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

工程罚款
REM@回声关闭
设置路径=%path%;c:\程序文件\git\bin;d:\ jruby-1.6.7\bin
设置jruby_opts=--1.9
git.exe fetch origin find“远程:计数对象”
如果%errorlevel%==0 taskkill/f/im:jruby.exe
git pull find“已经是最新的”。
如果%errorlevel%==1(
雷姆
启动cucumber.bat
rem在更新时执行其他操作

雷姆钢轨
任务列表查找“jruby.exe”
如果%errorlevel%==1(
回声@rail s s>rail.bat
回声@出口>>rail.bat
开始命令/c rail.bat

出口

最佳答案

我猜是因为‘counting objects’行显示了一个动态进度指示器,所以它断了,但不要引用我的话。

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

关于windows - Windows批处理下无法在“git.exe提取来源”中使用管道,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10679033/

10-15 17:17