Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让我的git回购面向客户_Git - Fatal编程技术网

让我的git回购面向客户

让我的git回购面向客户,git,Git,所以我想在我的服务器上有一个git repo,它保存着我的网站,一个我可以推到的网站,用户可以从域名中看到 我使用ssh连接到服务器并执行了以下操作: git --bare init 该文件位于文件结构/public\u html/project中。然后,在我的本地回购协议中,我做到了: git init 添加了远程服务器,并进行了初始提交并向上推送到服务器 当我导航到server staging.com/public_html/project时,我只看到git文件,服务器可以渲染的实际网站

所以我想在我的服务器上有一个git repo,它保存着我的网站,一个我可以推到的网站,用户可以从域名中看到

我使用ssh连接到服务器并执行了以下操作:

git --bare init
该文件位于文件结构/public\u html/project中。然后,在我的本地回购协议中,我做到了:

git init
添加了远程服务器,并进行了初始提交并向上推送到服务器

当我导航到server staging.com/public_html/project时,我只看到git文件,服务器可以渲染的实际网站文件在哪里


或者这是对GIT的一个不好的理解?

裸存储库没有工作目录。没有任何文件的签出副本可供您使用,也没有任何文件的签出副本可供您的web服务器使用。这就是您使用的-bare选项的全部要点。如果您希望远程设备上有可用的文件,请不要使用-bare。

我同意上面的评论

使用Git部署并不是最好的解决方案

最后,我将git设置为一个工作树 设置一个post接收挂钩,每次更新头部

如果其他人想走这条路,这些链接会有所帮助


即使不是-bare,他也必须在每次推送之后在服务器上进行git拉操作。我使用bare是因为在使用工作远程设备时出错:错误:拒绝更新签出的分支:refs/heads/master remote:error:默认情况下,在非bare存储库远程设备中更新当前分支:error:被拒绝,因为这会使索引和工作树与您推送的remote:error:不一致,并且需要'git reset-hard'来匹配remote:error:工作树的标题。@user2389087,这是KurzedMetal对您的问题的评论。Git并不意味着它是一种部署工具,将其作为一种工具使用可能会很棘手。您不能简单地将git推入远程机器上的目录,至少不能开箱即用。您需要从服务器上使用git pull,或者设置一个post-receive钩子来自动化您的站点部署,或者诸如此类的东西。Git用于保存源代码更改的历史记录,而不是部署网页。有什么更好的方法可以部署和控制有很多人的网站?@KurzedMetal告诉Heroku。