作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 this gist在我的工作流程中作为 post-merge
和 post-checkout
git hooks。
#!/usr/bin/env bash
# MIT © Sindre Sorhus - sindresorhus.com
# git hook to run a command after `git pull` if a specified file was changed
# Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`.
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
# Example usage
# In this example it's used to run `npm install` if package.json changed
check_run package.json "npm install"
这声称只有当 package.json
文件被更改时才会运行 npm install。
但是在我试过的所有机器上。无论 package.json 是否已更改,npm install 命令都会运行。
为了测试这一点,我在当前提交时创建了一个新分支,然后检查它,从而触发 post-checkout
git hook。我不希望 npm install
运行,因为 package.json
未更改。
视觉证明(注意 npm 警告文本):
最佳答案
ORIG_HEAD
应替换为 HEAD@{1}
,如 question 中所述ORIG_HEAD
是一种较旧的、不太可靠的方法,用于获取 HEAD 的先前状态。在我的例子中,它没有被设置。
关于node.js - 可选的 githook 表现为非可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876375/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!