git - 如何通过预提交 Hook 检测提交 --amend ?

标签 git githooks

当我执行 commit --amend 时,如果提交已经被推送到远程存储库,那么它是不安全的提交。

我想检测不安全的提交——通过预提交钩子(Hook)修改并中止。

但是预提交钩子(Hook)没有参数。我不知道如何检测 --amend。

我该怎么办?

最佳答案

按照@Roger Dueck 的回答,最终做了:

#./.git/hooks/prepare-commit-msg

IS_AMEND=$(ps -ocommand= -p $PPID | grep -e '--amend');

if [ -n "$IS_AMEND" ]; then
  return;
fi

关于git - 如何通过预提交 Hook 检测提交 --amend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387073/

相关文章:

git - 在没有任何提交的情况下撤消 git Reset

macos - Github推送失败

Git:如何在预提交 Hook 中重新暂存暂存文件

git - 运行本地和全局 git hooks

git - 使用 git post-receive hook 的边带解复用器出错

Git pull origin/master 分支到local/master,当在local/develop

GitHub:是否可以从仓库中获取仓库?

git - 将提交添加到 merge 的分支并开始新的 pull 请求

git - 解决冲突后如何根据 "theirs"版本对文件进行 git-diff

ruby - 在 Git 中编写一个预推送 Hook 以 grep 正则表达式的所有文件想要在找不到正则表达式时拒绝推送