使用 Egit 启动预提交挂钩
Use Egit to launch pre-commit hook
我在 Windows8 上使用 EGit (4.1.1) 使用 Eclipse Mars (4.5.2)。
我尝试使用 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
是。
第returns行会不会有问题?到目前为止我有LF。
要从 Eclipse (Egit) 中使用 运行 挂钩,您需要执行以下操作:
钩子被实现为需要由“/bin/sh”执行的脚本。
但是在一台普通的 windows 机器上你没有 sh.exe
。
因此,您需要安装 cygwin
并将 <cygwin_root>/bin
添加到您的 PATH
。
确保在安装 cygwin 期间您还安装了 git(因为挂钩脚本要执行 git 命令)。
为 Cygwin 设置 PATH
变量最终奏效了。不过我不得不重启电脑。
它仍然不适用于 GitForWindows。这可能是由于 JGit 有一个 FS_Win32_Cygwin
class 从 'PATH' 变量中提取到 sh.exe
的路径。 GitForWindows 可能不存在这样的 class(目前)。更多信息 here.
我的EGit版本(4.1.1)好像没有起作用
我在 Windows8 上使用 EGit (4.1.1) 使用 Eclipse Mars (4.5.2)。 我尝试使用 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
是。
第returns行会不会有问题?到目前为止我有LF。
要从 Eclipse (Egit) 中使用 运行 挂钩,您需要执行以下操作:
钩子被实现为需要由“/bin/sh”执行的脚本。
但是在一台普通的 windows 机器上你没有 sh.exe
。
因此,您需要安装 cygwin
并将 <cygwin_root>/bin
添加到您的 PATH
。
确保在安装 cygwin 期间您还安装了 git(因为挂钩脚本要执行 git 命令)。
为 Cygwin 设置 PATH
变量最终奏效了。不过我不得不重启电脑。
它仍然不适用于 GitForWindows。这可能是由于 JGit 有一个 FS_Win32_Cygwin
class 从 'PATH' 变量中提取到 sh.exe
的路径。 GitForWindows 可能不存在这样的 class(目前)。更多信息 here.
我的EGit版本(4.1.1)好像没有起作用