使用Egit启动预提交钩子

时间:2016-04-22 11:27:25

标签: eclipse git egit githooks pre-commit-hook

我在Eclipse Mars(4.5.2)上使用EGit(4.1.1)在Windows8上工作。 我尝试使用GitForWindows在eclipse中启动预提交钩子。

我使用:#!/bin/sh

启动了预提交文件

并为PATH变量GITFORWINDOWS提供了存储我的GitForWindows安装的sh.exe的bin文件夹的路径(C:\ Program Files \ Git \ bin)。

如果我在GitBash中执行git commit,则会正确执行预提交,因此如果在分阶段文件中检测到某个字符串,则会引发错误。如果我在Eclipse中提交没有任何反应。我做错了什么?

修改

我也和Cygwin一起尝试过。虽然它是从cygwin终端(以及GitInWindows终端)工作,但它不能在eclipse中工作。

我将PATH设置为C:\cygwin64\bin所在的sh.exe

换行是否有问题?到目前为止我有LF。

2 个答案:

答案 0 :(得分:0)

要在Eclipse(Egit)中运行钩子,您需要执行以下操作:

钩子被实现为需要由“/ bin / sh”执行的脚本。

但是在普通的Windows机器上,你没有sh.exe 因此,您需要安装cygwin并将<cygwin_root>/bin添加到PATH

确保在cygwin安装期间还安装git(因为钩子脚本要执行git命令)。

答案 1 :(得分:0)

最后为Cygwin设置PATH变量。我不得不重新启动计算机。

GitForWindows仍无效。这可能是因为JGit有一个FS_Win32_Cygwin类,它从'PATH'变量中提取sh.exe的路径。 GitForWindows(尚未)可能不存在这样的类。更多信息here

我的EGit的版本(4.1.1)似乎没有发挥作用。