我正在尝试将更改从本地计算机推送到实时服务器。我按照this page上的步骤进行了操作。
在我的本地计算机上,以下是我运行时的内容:$ git push web
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: /bin/bash: GIT_WORK_TREE=/var/www/html git checkout -f: No such file or directory
To ssh://MyDomainRemoved.com/var/git/myproject.git
d8a9173..7903ea9 master -> master
在实时服务器上,新提交会显示在$ git log
中。它在 post-receive hook 时遇到问题。以下是接收后文件现在的样子:
#!/bin/bash GIT_WORK_TREE=/var/www/html git checkout -f
我已经尝试过其他一些我读过的主题:
#!/bin/bash
和#!/bin/sh
#!/bin/bash
行上的隐藏回车。这允许bash在没有打开错误的情况下运行,但仍然没有这样的文件错误。服务器是Ubuntu 16.04。
有关其他事情的想法吗?
答案 0 :(得分:1)
确保将您的脚本放在多行而不是一行:
#!/bin/bash
GIT_WORK_TREE=/var/www/html git checkout -f
完整的命令是:
git --work-tree=/var/www/html --git-dir=/var/git/myproject/.git checkout -f