在 git 存储库中的 .git 目录下提交并推送更改

3


我有一个案例,需要在$REPO_NAME/.git/hooks/post-receive下创建一个post-receive hook。
我的目标是将这个文件$REPO_NAME/.git/hooks/post-receive作为我的存储库的一部分,并且可以被克隆。

我需要让这个文件存在并可供任何用户克隆我的存储库使用。 我尝试提交和推送它,但由于默认情况下Git忽略了.git目录,因此失败了。

[$MY_REPO/.git/hooks]>git add post-receive
fatal: this operation must be run in a work tree

有没有关于如何解决这个问题的想法/解决方案。

注意:我知道可以使用 Github Webhook,但我需要进行一些自定义处理,所以我需要使用 Git Webhook。

感谢您的帮助。

1个回答

2
根据这份文档https://www.atlassian.com/git/tutorials/git-hooks,维护开发团队的钩子可能有点棘手,因为.git/hooks目录没有随项目的其余部分一起克隆,也不在版本控制之下。解决这些问题的一个简单方法是将钩子存储在实际项目目录中(在.git目录上面)。这样可以像编辑其他版本控制文件一样编辑它们。要安装钩子,可以在.git/hooks中创建符号链接,或者每次更新钩子时将其复制并粘贴到.git/hooks目录中。我认为最好的方法是在仓库中创建一个带有钩子的目录,并将其链接到.git文件夹。你只需要在每个克隆上链接脚本即可。我认为没有其他办法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接