Git Push 成功,目标目录中没有实际文件

Git Push 成功,目标目录中没有实际文件

我有一个测试服务器和生产服务器,都运行带有 virtuamin 7 控制面板、LAMP 和 git 的 Ubuntu 20.04。

问题:
我当前的 git push 配置似乎是正确的。我没有收到任何错误...但最后,推送的文件实际上并没有出现在目标目录中,所以我很困惑。

我认为--work-treegit 标志被忽略了,因此推送的文件永远不会被放到正确的位置

在我的/home/username/public_html/production-site.git/hooks/push-receiver.shbash 脚本中我有:

#!/bin/bash

#Set Receiving & Working directories
git --work-tree=/home/username/public_html --git-dir=/home/username/public_html/production-site.git checkout -f

可执行文件

username@admin:~/public_html/production-site.git$ stat hooks/push-receiver.sh
  File: hooks/push-receiver.sh
  Size: 165         Blocks: 8          IO Block: 4096   regular file
Device: fd04h/64772d    Inode: 1970021     Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1051/username)   Gid: ( 1028/username)
Access: 2022-09-10 17:51:41.904111692 +0800
Modify: 2022-09-10 17:49:24.957850296 +0800
Change: 2022-09-10 17:49:37.122051612 +0800
 Birth: -

测试端没有错误:


$ git remote -v
prodsite    [email protected]:public_html/production-site.git (fetch)
prodsite    [email protected]:public_html/production-site.git (push)

Ubuntu 20.04.5 LTS
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 2 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 551 bytes | 551.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To XXX.YY.XX.YY:/home/username/public_html/production-site.git
   f251e56..9e7f4f3  master -> master
Branch 'master' set up to track remote branch 'master' from 'prodsite'.

最终结果...目标目录中没有实际文件

答案1

没有名为 的钩子push-receiver。这也意味着没有名为 的钩子push-receiver.sh:您的文件必须具有准确的钩子名称,不带任何扩展名。(唯一的例外是.exeWindows 上的文件。)

您可以了解可用的钩子在 githooks 手册页中。有一个完全适合您的用例:push-to-checkout。但是,我认为它不适用于裸存储库。您应该查看post-updatepost-receive

相关内容