我在服务器上有一个裸仓库,它是开发过程的起点,并且可以简化部署到QA环境的流程。
因此,在post-receive
中,它只需执行以下操作:
GIT_WORK_TREE=/home/dev git checkout -f
但随着产品变得更加复杂,还有一些其他的事情应该发生。所以现在由deploy.sh
脚本处理,该脚本也被存储库跟踪。因此,我想做的是能够不用检出整个存储库,而是只检出deploy.sh
并运行它。我认为以下这样做可能有效:
SOURCE_PATH="/home/dev"
GIT_WORK_TREE=$SOURCE_PATH git checkout deploy.sh
$SOURCE_PATH"/deploy.sh"
但它不起作用,会出现错误:
error: pathspec 'deploy.sh' did not match any file(s) known to git.
我做错了什么?或者这样做是不可能的吗?
deploy.sh
了吗?我相信这就是你想要做的。 - VonC./deploy.sh
,则命令将类似于GIT_WORK_TREE=$SOURCE_PATH git checkout -- deploy.sh
? - Alexey Kamenskiygit show
的想法是将一个文件的内容(在任何 git 存储库之外)转储出来,然后该文件会执行您所需的所有检出操作。 - VonC