2

为了使用 Git 将项目部署到远程仓库,我完全按照本指南中的说明进行操作。当我这样做时没有错误,但远程站点上没有任何变化。我通过这个推送时看到了这个:

git push dreamhost master

Counting objects: 252, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (250/250), done.
Writing objects: 100% (252/252), 994.11 KiB, done.
Total 252 (delta 100), reused 0 (delta 0)
To ssh://[username]@bartow.dreamhost.com/home/[username]/[filename].git
 * [new branch]      master -> master

我还有一个应该运行的接收后挂钩设置:

#!/bin/sh
git --work-tree=/home/timjaeger/[sitename] --git-dir=/home/timjaeger/[sitename].git
checkout -f

由于我没有收到任何错误消息,因此很难知道如何解决这个问题 - 我从哪里开始?我是使用 Git 进行部署的初学者。

4

2 回答 2

3

将 post-receive 更改为:

#!/bin/sh
GIT_WORK_TREE=/home/timjaeger/[sitename].com git checkout -f

工作。这篇文章有助于找到解决方案。

于 2013-03-30T18:06:10.507 回答
0

如果你有一个工作树/home/timjaeger/[sitename],那么你的 git repo 不能是/home/timjaeger/[sitename].git.

应该是/home/timjaeger/[sitename]/.git,但这会产生/home/timjaeger/[sitename]一个非裸仓库,直接推送是不明智的。

工作树应该与裸仓库 git 目录分开/home/timjaeger/[sitename].git

通过提及 git-dir 选项(OP squeezemylime 推荐),您可以将钩子当前执行目录保留在适当的位置(即,该钩子将在那里查看 git 存储库),同时指定不同的工作树。

于 2013-03-30T17:19:46.790 回答