问题描述
我实现了 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)
。