我有以下问题。我已将'post-receive'更新为cd到某个目录,然后将repo拉进去进行部署,如下所示:
#!/bin/bash
cd /var/www/site
git pull origin master
但是每当我在本地机器上执行'git push origin master'时,我会得到以下结果:
Counting objects: 5, done.
Delta compression using up to 2 threads.
(etc..)
remote: fatal: Not a git repository: '.'
然而,当我手动cd到/var/www/site
并执行git pull origin master
时,它的效果非常出色。
答案 0 :(得分:16)
使用未设置的GIT_DIR,如下所示
#!/bin/bash
cd /var/www/site || exit
unset GIT_DIR
git pull origin master
exec git-update-server-info
您可以在此处查看有关 GIT_DIR 的更多信息。 Git Loves the Environment
答案 1 :(得分:2)
另一个选择是你可以在命令中提到工作目录和git目录。
git --work-tree=/home/user/repos/my_app --git-dir=/home/user/repos/my_app/.git <command>
e.g:
git --work-tree=/home/user/repos/my_app --git-dir=/home/user/repos/my_app/.git status