在Git on Windows远程仓库中直接从远程仓库 checkout

ijxebb2r  于 2023-04-04  发布在  Git
关注(0)|答案(2)|浏览(162)

我想在git中的服务器上使用一个钩子来检查我的代码,当推送发生时。
我已经准备好了代码检查解决方案。git钩子的问题是,当更新发生时,很难从服务器的git仓库中检出最新的代码。
如何在最新的git环境中直接从远程仓库 checkout ?
我在stackoverflow上找到了一个示例代码,但它已经有6年的历史了。我不知道为什么,但是像'--work-tree'这样的命令在我的环境中不可用。我需要另一种方法。Git server hooks, check if code is formated

eoxn13cs

eoxn13cs1#

一个更简单的版本(比我6年前提到的版本)是一个post-receive钩子,它将设置GIT_DIR(您当前的bare repository)和WORK_TREE(您想要 checkout 存储库的文件夹)

git --git-dir="$GIT_DIR" --work-tree=. -C "$TARGET" restore -- .

$TARGET替换为要检出文件的路径。
如果服务器上的Git比Git 2.23 (Q3 2019)旧,请将git restore替换为git checkout

hzbexzde

hzbexzde2#

哎呀。--work-tree是有效的命令。问题出在别处。

git --work-tree="<somewhere temporary path>" checkout HEAD

它与Windows上的gitea存储库一起工作。
当我使用<path> = "D:\check-file\\"时,它不工作。
但是当我使用<path> = "D:\check-file" or "D:\check-file\\\\"时,它工作得很好。

相关问题