【问题标题】:How can I prevent git post-checkout hook from executing when I revert files?还原文件时如何防止执行 git post-checkout 挂钩?
【发布时间】:2020-07-28 12:35:53
【问题描述】:

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

【问题讨论】:

    标签: git post-checkout-hook


    【解决方案1】:

    根据post-checkout

    钩子被赋予了三个参数:前一个 HEAD 的 ref, 新 HEAD 的 ref (可能已更改也可能未更改)和一个标志 指示结帐是否为分支结帐(更改 分支,标志 = 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)
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多