首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从git post-commit挂钩运行cmd?

如何从git post-commit挂钩运行cmd?
EN

Stack Overflow用户
提问于 2011-09-13 19:45:10
回答 2查看 11.1K关注 0票数 17

我想在我的私人项目上有一个微型的ci循环,并在想如果我可以在batfile中运行msbuild,我可以在cmd窗口上有彩色的反馈,并自动构建。因此,如果我可以从提交后钩子触发bat,我想这是可能的。这不可能是一个新的想法,但我在谷歌上找不到任何例子。

如有任何意见,我们将不胜感激:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-13 21:29:33

从post-commit钩子调用.bat文件不需要任何魔法。

.git/hooks/post-commit.sample中的提交后钩子模板重命名为.git/hooks/post-commit,并通过简单地写入批处理文件的名称来调用其中的批处理文件:

代码语言:javascript
复制
#!/bin/sh
path/to/batchfile.bat

请注意,git钩子的工作目录是您的存储库的根目录。如果您使用.bat文件的相对路径,则必须考虑到这一点。

票数 21
EN

Stack Overflow用户

发布于 2013-03-21 07:54:40

@eckes的答案是关闭,但实际上正在运行我的bat/cmd文件,就好像它们是bash脚本一样。如果你想把它们作为批处理文件来运行,下面是我想要的:

post-接收

代码语言:javascript
复制
#!/bin/sh
# important that it's got the .exe on the end!
cmd.exe /c "C:\path\to\somebatch.cmd"

somebatch.cmd

下面是一些你可能会发现有用的东西/环境变量等:

代码语言:javascript
复制
@echo off

:: read commit hook stdin data e.g. "aa45321… 68f7abf… refs/heads/master"
set /p OLDREV_NEWREV_REFNAME=

echo Directory of this script is %~dp0
echo Repository root is %CD%

set OLDREV=%OLDREV_NEWREV_REFNAME:~0,40%
echo OLDREV: %OLDREV%

set NEWREV=%OLDREV_NEWREV_REFNAME:~41,40%
echo NEWREV: %NEWREV%

set REFNAME=%OLDREV_NEWREV_REFNAME:~82,999%
echo REFNAME: %REFNAME%
票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7401303

复制
相关文章

相似问题

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