我想在git中的服务器上使用一个钩子来检查我的代码,当推送发生时。
我已经准备好了代码检查解决方案。git钩子的问题是,当更新发生时,很难从服务器的git仓库中检出最新的代码。
如何在最新的git环境中直接从远程仓库 checkout ?
我在stackoverflow上找到了一个示例代码,但它已经有6年的历史了。我不知道为什么,但是像'--work-tree'这样的命令在我的环境中不可用。我需要另一种方法。Git server hooks, check if code is formated
我想在git中的服务器上使用一个钩子来检查我的代码,当推送发生时。
我已经准备好了代码检查解决方案。git钩子的问题是,当更新发生时,很难从服务器的git仓库中检出最新的代码。
如何在最新的git环境中直接从远程仓库 checkout ?
我在stackoverflow上找到了一个示例代码,但它已经有6年的历史了。我不知道为什么,但是像'--work-tree'这样的命令在我的环境中不可用。我需要另一种方法。Git server hooks, check if code is formated
2条答案
按热度按时间eoxn13cs1#
一个更简单的版本(比我6年前提到的版本)是一个
post-receive
钩子,它将设置GIT_DIR
(您当前的bare repository)和WORK_TREE
(您想要 checkout 存储库的文件夹)将
$TARGET
替换为要检出文件的路径。如果服务器上的Git比Git 2.23 (Q3 2019)旧,请将
git restore
替换为git checkout
。hzbexzde2#
哎呀。--work-tree是有效的命令。问题出在别处。
它与Windows上的
gitea
存储库一起工作。当我使用
<path> = "D:\check-file\\"
时,它不工作。但是当我使用
<path> = "D:\check-file" or "D:\check-file\\\\"
时,它工作得很好。