8

我正在尝试为 Git 使用预提交挂钩。钩子如下所示:

#!/bin/bash
echo "fail"
exit 1

因此,它总是会失败,即我的 Git 提交应该失败。

如果我用 git 添加一些东西然后在命令行中提交它,我很可能会失败并且我的提交失败。

但是,如果我使用 NetBeans 提交,我的预提交钩子不会被执行。它似乎只是忽略它。

我正在使用Ubuntu和 NetBeans 7.1。预提交钩子的权限是 -rwxrwxrwx (只是为了测试目的将其更改为 777)。

这怎么可能?

4

1 回答 1

9

看起来是这样的。是的。

如果您查看NetBeans Git 集成计划,您会注意到根本没有计划对挂钩的支持。

除此之外,我不会依赖 Git 的任何 IDE 集成,而是使用命令行。如果您决定明天放弃 NetBeans 并改用 Eclipse 会怎样?还是 Visual Studio?还是KDevelop?您将不得不学习一个新的 IDE,并再次将 Git 集成到 IDE 中。而且您必须希望 IDE 插件的开发人员确实实现了您需要的 Git 子集。这是浪费时间。

此外,NetBeans 中的 Git 实现还远未完成。命名为nice-to-have ( stash, cherry-pick, rebase) 的功能非常有用。甚至没有提到其他杀手级功能(git bisect有人吗?)。

走命令行。学习使用 Git。节省您的时间。


查看NetBeans Git 集成计划的M2,可以看到 Git 的目标后端不应是 Git 的本机(即特定于平台)实现,而是. 这完全是脑残的做法。几乎你要开发的每个平台都有 Git 的本机实现。JNI 存在。为什么不采用特定于平台的二进制文件(肯定比从头开始的命令的纯 Java 实现更好地测试),放一个小的 JNI 包装器,你就完成了?是的,你将失去一次编写,到处运行,但稳定性和代码质量会提高。jgit

于 2012-07-06T13:20:50.263 回答