【发布时间】:2015-03-04 05:30:19
【问题描述】:
我设置了一些 git 钩子来在预提交时运行一些 gulp 命令。我基本上运行jshint/plato。我基本上想在两种情况下绕过这些:
- 修补程序分支(主/修补程序)
- git 合并(或找到一种在合并提交情况下不会崩溃的方法)
plato gulp 命令对源代码运行分析并生成一个 /reports/ 目录,该目录随时间跟踪复杂性。如果我们在修补程序分支上执行此操作,则在将它们合并回开发时会导致合并冲突。简单的钩子就说到这里了:
#!/bin/sh
if git diff --cached --name-only --diff-filter=ACM | grep '.js$' >/dev/null 2>&1
then
git stash -q --keep-index
./node_modules/.bin/gulp jshint
RESULT=$?
git stash pop -q
[ $RESULT -ne 0 ] && exit 1
git stash -q --keep-index
./node_modules/.bin/gulp plato
git add report/
git stash pop -q
fi
exit 0
现在的问题是,如果我在“报告”上有合并冲突,我解决了合并 All conflicts fixed but you are still merging. 然后提交它再次运行分析并暂存提交,当它提交时会引发错误:
/Users/Nix/work/project/.git/modules/somesubmodule/MERGE_HEAD' 供阅读:没有这样的文件或目录。
目录确实存在但没有合并头...
【问题讨论】:
标签: git git-submodules githooks