Category: git

git 小技巧: 通过pre-commit hook 来防止程序员把其它测试用例给禁用了

公司今天例会上说, 有一个PR几天前合进去, 结果导致CI上的测试用例都没有执行. 仔细一看, 原来是PR中不小心把 .only 提交了. 在 NodeJS的测试框架中, 我们开发的时候本地代码加上 describe.only 或者 it.only 来只运行我们关心的几个测试用例: describe.only("我只关心这些测试用例, 其它的不要跑", function() { it("就这个", function() { expect(1).to.equal(1); }); }); 很有可能, 在提交的时候忘记把这些代码回退了, 更糟糕的是, 很有可能在代码审核的时候也顺利通过了, 那么CI持续集成测试的时候就只跑这些测试用例, …

git 小技巧: 如何通过pre-push hooks避免向主分支提交代码?

有时候无意的提交代码 push 到本地主/开发分支时, 你有没有想过把头撞到墙上? 一般这种情况下 我们能通过 `git reset HEAD files` 来取消提交 (unstage), 但是, 这还是挺让人不爽的. 还好, git 提供了很多 hooks 挂钩, 这些挂钩可以在事件完成前后做些检查, 其中 pre-push 就用于在推送代码前进行检查, 当脚本返回1时, 那么动作将停止, 而返回0时则表示一切正常可以继续提交. pre-push 是 BASH脚本, …