我刚刚意识到我忘了在我刚刚检查过的存储库中添加一个推钩,并且经历了一些令人不快的后果。我注意到我不能git添加.git/hooks/pre-push
。我可以以某种方式向自己添加一条消息,一旦我克隆存储库就会显示该消息,这会提醒我添加预推脚本吗?
答案 0 :(得分:0)
This question包含可能对模拟git clone hook有用的信息。
特别是通过调整post-checkout hook来创建一些隐藏文件(如果它不存在)并显示消息。在将来的检查中 - 文件存在,因此没有消息。
不要忘记将该文件添加到.gitignore
。
答案 1 :(得分:0)
您可以通过在git-template-directory中创建包含注释的默认 - pre-push
- 脚本来实现此目的。
除其他外,template-directory包含将在每次创建$GIT_DIR
时复制到新存储库的hook-templates。每当通过git init
或git clone
初始化本地git-repository时,都会执行此操作。
虽然git-init的文档提供了定义git-template的不同选项,但我将在此示例中创建一个自定义模板目录。
首先,我们递归地将默认模板目录复制到~/.git-templates/
(您可以根据需要命名目录):
cp -r /Library/Developer/CommandLineTools/usr/share/git-core/templates ~/.git-templates
我正在使用Mac - 所以我在/Library/Developer/CommandLineTools/usr/share/git-core/templates
找到了一个(有多个目录)origin-template-directory,Linux用户应该能够找到系统范围的模板在/usr/share/git-core/templates
。
在~/.git-templates/hooks
中添加如下脚本,将其命名为pre-push
并将其设为可执行文件:
#!/bin/sh
printf "\033[0;31m Note to myself:\033[0m don't forget to replace the pre-push-hook. :)\n"
exit 1 # this hook should always fail
~/.gitconfig
替换或添加init.templatedir
- 选项,使其在您的新模板目录中引用:
[init]
templatedir = ~/.git-templates/
每当你现在正在初始化或克隆git-repository时,你应该得到定义的注释。
由于Git的新版本,请考虑将来可能会更改origin template-dir的内容。在这种情况下,您可能需要更新模板目录的内容以消除令人讨厌的错误消息。