我正在尝试为 Git 使用预提交挂钩。钩子如下所示:
#!/bin/bash
echo "fail"
exit 1
因此,它总是会失败,即我的 Git 提交应该失败。
如果我用 git 添加一些东西然后在命令行中提交它,我很可能会失败并且我的提交失败。
但是,如果我使用 NetBeans 提交,我的预提交钩子不会被执行。它似乎只是忽略它。
我正在使用Ubuntu和 NetBeans 7.1。预提交钩子的权限是 -rwxrwxrwx (只是为了测试目的将其更改为 777)。
这怎么可能?
我正在尝试为 Git 使用预提交挂钩。钩子如下所示:
#!/bin/bash
echo "fail"
exit 1
因此,它总是会失败,即我的 Git 提交应该失败。
如果我用 git 添加一些东西然后在命令行中提交它,我很可能会失败并且我的提交失败。
但是,如果我使用 NetBeans 提交,我的预提交钩子不会被执行。它似乎只是忽略它。
我正在使用Ubuntu和 NetBeans 7.1。预提交钩子的权限是 -rwxrwxrwx (只是为了测试目的将其更改为 777)。
这怎么可能?
看起来是这样的。是的。
如果您查看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