我设置了一个git登台服务器,推送后文件没有出现

时间:2015-07-11 17:47:25

标签: git

我已经设置了其中的一些并使它们正常工作,但在我的一台服务器上,我似乎无法将文件显示在登台服务器上。我可以推动生活,他们没有问题。

在服务器上采取的步骤:

mkdir staging
cd staging
mkdir staging.git
cd staging.git
git init --bare
cd hooks
touch post-receive
nano post-receive
chmod +x post-receive

我在收件后文件中发布了以下内容:

#!/bin/sh
GIT_WORK_TREE=/var/www/my-site.com/public_html/staging git checkout -f master

从我当地的机器上我做了:

git remote add staging myuser@my-site.com:/var/www/my-site.com/staging/staging.git
git add .
git commit -m "Pushing to staging"
git push staging master

git推得很好,没有错误,但文件无处可寻。这是我在其他服务器上成功使用的完全相同的设置,以及我用于推送生活的完全相同的设置,这有效。

我搞砸了原来的设置,从服务器上删除了整个暂存目录,删除了远程并重新启动了整个过程。我认为我一路上都错过了什么?

我对此问题的第二部分是,我的.git文件夹是否必须位于暂存文件夹中,或者GIT_WORK_TREE路径是否必须指向暂存文件夹,而远程需要指向.git文件夹?

1 个答案:

答案 0 :(得分:1)

我在您的设置中看不到的唯一步骤是chmod +x post-receive,以确保它是可执行的。

我会使用更可靠的:

 git --git-dir=/var/www/my-site.com/staging/staging.git --work-tree=/var/www/my-site.com/staging checkout -f master
  

我的.git文件夹必须位于暂存文件夹

如果http文件服务器可见/寻址,您的裸仓库可以是您想要的任何地方 这与工作树不同,工作树引用您签出代码的文件夹。

相关问题