gpt4 book ai didi

git - 如何使用 git init 将本地 git hooks 替换为更新版本?

转载 作者:太空狗 更新时间:2023-10-29 12:48:08 25 4
gpt4 key购买 nike

我和这里的用户有完全相同的问题:

git init template, replacing modified hooks

我的全局 git Hook 中有一个新模板文件。但是,原始模板文件已经加载,所以 git init 不会覆盖。我在这里读到同样的内容,这似乎是正确的 git 行为:

来自 http://www.cs.potsdam.edu/cgi-bin/man/man2html?1+git-init :

Running git init in an existing repository is safe. It will not overwrite things that are already there. The primary reason for rerunning git init is to pick up newly added templates.

那么强制重新加载新的 git 模板 Hook 的好方法是什么?我在多台计算机上的许多 git repos 中有许多 Hook ,并被各种用户使用。最实用的方法是让用户运行一个特定的命令,而不是告诉他们先删除钩子(Hook)然后运行 ​​git init 命令。有没有办法做到这一点?

最佳答案

The most practical way is to have the users run a specific command, rather than telling them to remove the hook first and then run the git init command

在这种情况下,一种可能的方法是向这些用户分发一个执行此操作的脚本(您可以在每个存储库中对该脚本进行版本控制)。
而不是做 git init他们会直接调用该脚本:

  • 取下钩子(Hook)
  • 调用git init --template=

但请注意您使用 --temaplate 选项的路径。
一个亲戚pathname给了“git init --template=<path> <repo>”应该相对于目录“git init”被调用,但它是相对于存储库制作的,该存储库已使用 Git 2.22.1(2019 年第 2 季度)更正。

参见 commit e1df7fe (2019 年 5 月 10 日)作者:Nguyễn Thái Ngọc Duy ( pclouds ) .
(由 Junio C Hamano -- gitster -- merge 于 commit 35d7715 ,2019 年 7 月 25 日)

init: make --template path relative to $CWD

During git-init we chdir() to the target directory, but --template is not adjusted.
So it's relative to the target directory instead of current directory.

It would be ok if it's documented, but --template in git-init.txt mentions nothing about this behavior.
Change it to be relative to $CWD, which is much more intuitive.

关于git - 如何使用 git init 将本地 git hooks 替换为更新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com