我和这个用户有完全相同的问题:
我的全局git钩子中有一个新的模板文件.但是,原始模板文件已加载,因此git init不会覆盖.我在这里阅读相同,这似乎是正确的git行为:
来自http://www.cs.potsdam.edu/cgi-bin/man/man2html?1+git-init:
在现有存储库中运行git init是安全的.它不会覆盖已存在的东西.重新运行git init的主要原因是选择新添加的模板.
那么强制重新加载新的git模板钩子的好方法是什么?我在许多git repos中有许多钩子,在几台计算机上并被各种用户使用.最实用的方法是让用户运行一个特定的命令,而不是告诉他们先删除钩子然后再运行git init命令.有办法做到这一点吗?
最实用的方法是让用户运行特定的命令,而不是告诉他们先删除钩子,然后再运行 git init 命令
在这种情况下,一种可能的方法是向这些用户分发一个脚本(您可以在每个存储库中对该脚本进行版本控制)。他们不会直接
执行该操作git init,而是调用该脚本:
git init --template=但请注意您与 --temaplate 选项一起使用的路径。
的相对pathname给予“ git init --template=<path> <repo>”应该是相对于目录“ git init”中被调用,但它而不是被相对库,已使用Git 2.22.1(Q2 2019)做出修正。
请参阅Nguy?n Thái Ng?c Duy ( ) 的commit e1df7fe(2019 年 5 月 10 日)。(由Junio C Hamano合并-- --在commit 35d7715,2019 年 7 月 25 日)pclouds
gitster
init:使
--template路径相对于$CWD期间
git-init我们chdir()到了目标目录,但是--template没有调整。
所以它相对于目标目录而不是当前目录。如果它证明这将是确定的,但
--template在git-init.txt没有提及这种行为。
将其更改为相对于$CWD,这更加直观。