首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.bat脚本中的git克隆

.bat脚本中的git克隆
EN

Stack Overflow用户
提问于 2016-09-06 20:37:37
回答 2查看 13.7K关注 0票数 5

是否可以编写一个Windows脚本,在脚本中间执行"git .bat“,这样脚本就可以继续运行?对我来说,这总是令人兴奋的。

我在Windows7企业版SP1上使用的是来自“Git开发社区”的64位Git版本2.8.3。git.exe位于我的路径(c:\program files\git\cmd\git.exe)中-它不是通过git.cmd或类似文件间接执行的。

我能够运行一系列命令,比如

代码语言:javascript
运行
复制
git init
git add --all
git commit -m "commit message"

并且使用这些命令,批处理脚本执行每个命令继续正常。使用

代码语言:javascript
运行
复制
git clone {url}

脚本立即退出,通常会出现两次提示,表示某种异常退出(即使%ERRORLEVEL%为0):

代码语言:javascript
运行
复制
git clone {url} new
Cloning into 'new'...
remote: Counting objects: 26, done
remote: Compressing objects: 100% (23/23) done.
remote: Total 26 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (26/26) done.
Checking connectivity... done.
c:\jdev\ppss\finalprep\ant2>c:\jdev\ppss\finalprep>

常见的Windows技巧,比如使用“调用git克隆...”和"cmd /c git克隆...“似乎不起作用。甚至“启动/wait命令/c git克隆...”不会这样做的。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-06 21:57:20

"git clone“后面的一行是IF语句:

代码语言:javascript
运行
复制
git clone {url} subfolder
if "%var%" == "y" (
  @echo some commands went here
) else (
  @echo different commands went here
}

上面的IF语句不是合法的DOS if语句(否则就不好了),但是你没有从DOS得到任何错误信息--你的脚本只是退出。看起来像是前面的命令导致了中止,在我的例子中恰好是git克隆。

这与git没有任何关系,严格说来是cmd.exe的胡说八道。

票数 3
EN

Stack Overflow用户

发布于 2016-09-06 21:11:57

在失败的特定情况下,由于先前的"mkdir“,"git clone”正在写入的子目录已经存在。没有mkdir -没有已经存在的子目录-批处理脚本在git克隆后继续正常运行,也不需要任何特殊的技巧,比如cmd /c。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39349208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档