如何让git忽略post/pre-commit钩子上的未老化更改

如何让git忽略post/pre-commit钩子上的未老化更改,git,testing,githooks,Git,Testing,Githooks,我正在尝试进行提交,以通过所有测试,从而在rails项目中实现自动化。 问题是,我在提交之前大量使用了git add--patch,我希望我的测试只在阶段性更改上运行 解决方案1: 执行git stash——在预提交时保持索引,或在后提交时保持简单的git stash,然后执行钩子(rake测试)和git stash pop。 这意味着我必须等待它完成,而当它运行时,我将无法访问我的未老化更改 解决方案2:我设置了一个新的本地repo(测试人员),并设置了从第一个repo(开发)到测试人员rep

我正在尝试进行提交,以通过所有测试,从而在rails项目中实现自动化。 问题是,我在提交之前大量使用了
git add--patch
,我希望我的测试只在阶段性更改上运行

解决方案1: 执行
git stash——在预提交时保持索引
,或在后提交时保持简单的
git stash
,然后执行钩子(
rake测试
)和
git stash pop
。 这意味着我必须等待它完成,而当它运行时,我将无法访问我的未老化更改

解决方案2:我设置了一个新的本地repo(测试人员),并设置了从第一个repo(开发)到测试人员repo的post-commit钩子。测试人员repo应该有一个post-receive钩子来运行测试,并在我推之前(通过电子邮件或whateva)通知我它是否通过或未能修复提交

第二种解决方案听起来更好(我想),尽管由于忽略文件,回购协议会有差异


您还有其他解决方案吗?

我最终求助于解决方案2,该解决方案后来演变为一个小型连续测试系统。

看看git new workdir(您可以在git repository contrib/workdir中找到它)。它创建了一个新的工作目录,您可以使用它来运行测试。

我也有类似的问题。我更喜欢索尔。1(虽然速度不允许),但未跟踪的文件存在问题。如果我添加一个新类并使用它,但不提交它,那么测试将使用它运行,但提交将失败。Git支持隐藏——包括未跟踪但不在版本1.7.4.1中,我已经有了。