Git Hooks - 合并后的钩子文件不存在

时间:2016-01-02 15:50:14

标签: git version-control githooks

我是Git版本系统的新手。 我在我的Ubuntu机器上安装了git。 只有以下钩子可用。

applypatch-msg.sample
commit-msg.sample
post-update.sample
pre-applypatch.sample
pre-commit.sample
prepare-commit-msg.sample
pre-push.sample
pre-rebase.sample
update.sample

"合并后"钩文件?

1 个答案:

答案 0 :(得分:1)

commit 4623291 (git 1.5.4, Sept 2007)中引入了合并后的挂钩,但从未包含post-merge.sample文件。

diff --git a/git-merge.sh b/git-merge.sh
index 3a01db0..66e48b3 100755
--- a/git-merge.sh
+++ b/git-merge.sh
@@ -97,6 +97,19 @@ finish () {
                fi
                ;;
        esac
+
+       # Run a post-merge hook
+        if test -x "$GIT_DIR"/hooks/post-merge
+        then
+           case "$squash" in
+           t)
+                "$GIT_DIR"/hooks/post-merge 1
+               ;;
+           '')
+                "$GIT_DIR"/hooks/post-merge 0
+               ;;
+           esac
+        fi
 }

因此,如果您需要该挂钩,则可以创建post-merge文件(在通常位置.git/hooks/)。但是你没有与其他人在同一个地方有任何样本。

commit af6fb4c确实通过调用:

添加了引用post-merge示例

git/git/contrib/hooks/setgitperms.perl

该脚本包括:

  

要恢复权限/所有权数据,请将此脚本放在.git/hooks目录中,并使用以下行启用post-merge挂钩:

  #!/bin/sh
 . git-sh-setup
 $GIT_DIR/hooks/setgitperms.perl -w