TortoiseGit 预提交钩子shell 脚本

问题描述

我实现了 git pre-commit 钩子(shell 脚本)并且它们在 Linux 环境中运行良好,我尝试在 TortoiseGit 中实现相同的 shell 脚本预提交钩子但没有发生任何事情,因为 windows 不支持 shell 脚本所以试图更改shebang行以引用git的shell.exe仍然没有运气,有没有人知道如何在TortoiseGit中实现预提交(shell脚本)钩子?

解决方法

TortoiseGit 带有自己的钩子,因为在执行 git.exe 钩子时并不总是可以控制。

https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html#tgit-dug-settings-hooks

TortoiseGit 还允许您将钩子存储在存储库中(当然,在这里您需要考虑安全方面)。


Windows 版 Git 带有可靠的 *nix 环境。因此,shell 脚本应该可以正常工作(无需修改 *nix)。

如果您想调试普通 Git 挂钩,请从命令行调用 list_strings = ["A-C-TG--","ATCGTAGC","ATGCGATC","ATGCGGTC"] positions = [i for i,letter in enumerate(list_strings[0]) if letter == "-"] new_list_strings = [] for string in list_strings: new_str = "" for idx,char in string: if idx not in positions: new_str += char new_list_strings.append(new_str)