我正在尝试使用git的预提交钩子。钩子如下所示:
#!/bin/bash
echo "fail"
exit 1
因此,它总会失败,即我的git提交失败。
如果我使用git添加内容然后在命令行中提交它我很快就会失败并且我的提交失败。
但是如果我使用netbeans,我的预提交挂钩就不会被执行。它似乎忽略了它。
我使用的是Ubuntu和Netbeans 7.1。预提交挂钩的权限是-rwxrwxrwx(为了测试目的,只需将其更改为777)。
这怎么可能?
答案 0 :(得分:9)
看起来像那样。是。
如果查看NetBeans Git Integration Plan,您会注意到根本没有支持计划的挂钩。
除此之外,我不会依赖于Git的任何IDE集成,而是use the command line。如果您决定明天放弃NetBeans并使用Eclipse,该怎么办?还是VisualStudio?还是KDevelop?您将不得不学习一个新的IDE,并再次在IDE中集成Git。而且你必须希望IDE插件的开发者确实实现了你需要的那个Git子集。浪费时间。
此外,NetBeans中的Git实现还远未完成。名为 nice-to-have (stash
,cherry-pick
,rebase
)的功能非常实用。其他杀手功能甚至没有提及(git bisect
任何人?)。
Take the command line。学习使用Git。节省您的时间。
编辑:查看NetBeans Git Integration Plan的 M2 ,可以看出Git的目标后端不是本机(即特定于平台)的实现但是jgit
。这是一个完全脑死亡的方法。您将要开发的几乎所有平台都具有Git的本机实现。 JNI存在。为什么不采用平台特定的二进制文件(肯定比纯粹的从头开始的Java命令实现更好的测试),放一个小的JNI包装器,你就完成了?是的,你将失去一次性写入,但稳定性和代码质量会增长。