当我恢复文件时,如何防止gitpostcheckout钩子执行



我有一个git签出后挂钩,每当我签出到不同的提交时,它会自动重新编译我的Visual Studio项目。这很好,但我注意到,当我在TortoiseGit中从日志窗口和提交窗口进行恢复时,钩子也会执行(我右键单击要恢复的文件,然后单击弹出菜单中的"恢复"(。有没有办法防止这种情况发生?

根据结账后,

钩子有三个参数:前一个HEAD的refref(可能已更改,也可能未更改(,以及标志指示签出是否为分支签出(正在更改分支,flag=1(或文件签出(从索引,标志=0(。

您可以测试第三个参数。如果是0,则不要编译。例如在Bash中,

#!/bin/bash
flag=$3
if [[ "$flag" -eq 0 ]];then
exit 0
fi

在Python中,

#!/usr/bin/env python
import sys
flag = sys.argv[3]
if flag == '0':
sys.exit(0)

最新更新