草庐IT

git - 无法从 Git 接收后 Hook 中检测到分支

我在远程仓库上设置了一个postreceivehooksetup,它试图确定传入推送的分支名称,如下所示:$branch=`gitrev-parse--abbrev-refHEAD`不过,我发现无论我从$branch变量中推送哪个分支,都会设置为“master”。有什么想法吗? 最佳答案 post-receivehook获取与pre-receive相同的数据,但不是作为参数,而是来自标准输入。为所有引用发送以下内容:oldRev(空格)newRev(空格)refName(换行)您可以使用此bash脚本解析出ref名称:whilere

用于 merge 冲突的 Git 钩子(Hook)

是否有可用于merge冲突的git钩子(Hook)?在gitmerge失败后,如果能够编写一个脚本来打开$EDITOR中所有有冲突的文件,那就太好了。不幸的是,如果存在冲突,post-mergeHook不会运行,而且根据我在githooks手册页中看到的内容,没有其他适用的Hook。我想知道我是否遗漏了什么,或者除了将“gitmerge”别名化为一个函数或类似的东西之外,是否还有其他替代方法。谢谢,克里斯 最佳答案 正如CharlesBailey所建议的那样,最好的方法是自定义mergetool。使用thisguide,我想到了这种

git - 如何在 git 预提交 Hook 中将文件添加到索引

我四处寻找重复项,虽然其中一些具有相似的标题,但我没有发现任何人遇到与我相同的问题,所以这里开始。我编写了一个在pre-commit上运行的脚本并使用gitstatus--porcelain的输出编译我的项目中已更改的任何LESS文件。这部分工作正常。但我希望.css文件包含在当前提交中。所以除了运行编译器,我的脚本还运行gitadd.这就是事情变得棘手的地方。文件被添加到索引中,但它不是当前提交的索引。所以如果我修改style.less,然后运行​​gitcommit-a(或手动gitaddstyle.less)编译器应生成style.css和style.min.css并将它们添加到

git - 跨平台 git 钩子(Hook)

您如何跨各种平台(例如,*nix和windows)管理git预/后提交Hook?针对此场景推荐的最佳做法是什么? 最佳答案 git钩子(Hook)实际上与任何shell脚本没有什么不同,因为保持它们“跨平台”的最佳实践同样适用。细微差别在于,您也可能将Windows*nix仿真层作为这些Hook的主要用户,并且与大多数实际的Unix环境相比,这些可能相对较弱。我刚刚将一个提交后Hook(并编写了一个提交前Hook)移植到默认的GitforWindows,它使用MINGW32。自上一版本对可用的脚本环境做出一些假设后,我必须做出一些更

git - 我如何从 git post-commit Hook 运行 cmd

我想在我的私有(private)项目上有一个微型ci循环,并且在想如果我可以在batfile中运行msbuild,我可以在cmd窗口上对反馈进行着色并自动构建。因此,如果我可以从post-commitHook中触发bat,我想这是可能的。这不可能是一个新想法,但我在谷歌上找不到任何例子。任何输入将不胜感激:) 最佳答案 @eckes的回答很接近,但实际上是在运行我的bat/cmd文件,就好像它们是bash脚本一样。如果您想将它们作为批处理文件运行,这对我有用:接收后#!/bin/sh#importantthatit'sgotthe.

windows - 如何在 Windows 上运行 git hook 脚本,通过文件系统使用存储库?

由于其简单性,我们使用放置在共享磁盘上的远程存储库,使用文件系统路径(\server\share)访问它。在这种情况下,是否可以运行远程存储库中定义的钩子(Hook)脚本?我已经定义了一个,但它似乎没有启动(在Hook脚本中使用无效编辑进行测试,女巫应该会导致错误)。 最佳答案 Githook是一个脚本,您可以在提交之前(提交前)或之后(提交后)运行。可以有多个这样的脚本。它们被放置在指定的文件夹中。任何git存储库都有一个.git/hooks文件夹,其中包含包含Hook脚本的文件。你需要回答您是否将正在测试的事件绑定(bind)到

Git post-commit hook 作为后台任务

我有一个脚本,我需要在提交到git版本控制下的项目后运行它。因此,我在我的项目.git目录的子目录/hooks中创建了一个提交后Hook,将其命名为“post-commit”并为其提供以下内容:#!/bin/sh#Iamapost-commithook/usr/local/bin/my_script&my_script是可执行的并且在/bin/sh中运行良好。事实上它有几秒钟的运行时间,所以我希望它在后台运行并从当前shell中分离出来。这就是为什么我将尾随的“&”放在我的钩子(Hook)上。现在的问题是,'&'似乎被忽略了。当我在OSXLion下提交使用gitx0.7.1时,gitx

git - 如何在 GitHub 上运行 post-receive hook

如何在GitHub中运行接收后Hook?。我知道有web-one但我想编写自定义脚本并且不想收到来自github的帖子。 最佳答案 post-receivehookofGithub实际上只是“WebHooks”,用于在存储库被推送到时与网络服务器通信。出于安全原因,您不能在GitHub服务器端运行任何东西。Whenapushismadetoyourrepository,we'llPOSTtoyourURLwithapayloadofJSON-encodeddataaboutthepushandthecommitsitcontaine

ruby - 混帐,Heroku : pre-receive hook declined

我正在设置一个git存储库并尝试将其链接到Heroku。当我运行命令时gitpushherokumaster我收到了Countingobjects:7,done.Deltacompressionusingupto2threads.Compressingobjects:100%(5/5),done.Writingobjects:100%(7/7),714bytes,done.Total7(delta1),reused0(delta0)----->Herokureceivingpush!Herokupushrejectedduetoanunrecognizederror.!We'vebee

github 服务器端 git 钩子(Hook)(即预提交和后提交)

我查看了SO和网络上的答案,但我看不到有关如何在github上设置服务器端gitHook(与webhooks相对)的任何信息。有办法做到这一点吗?或者,有没有办法设置它,以便.git/hooks在克隆时成为工作树的一部分的符号链接(symboliclink)?我应该补充一点,这是一个内部托管的github服务器。 最佳答案 出于显而易见的原因,GitHub不允许您在其服务器上作为GitHook的一部分执行任意代码。他们唯一允许的Hook是通过他们的网络Hook或集成的第三方服务。如果您需要运行一些自定义代码,您必须将其托管在某个地方