如何使用Git部署网站?

如何使用Git部署网站?,git,deployment,git-push,Git,Deployment,Git Push,我想使用Git将我的本地Laravel网站部署到我的服务器上。我一直在阅读关于如何做到这一点的教程,但它们都提到编写一些post-receivewebhook,我对Git非常陌生,但并不完全理解 有人能给我解释一下,为什么对我的public\uhtml使用git push是不够的?我试过了,但它没有复制我的任何网站文件,所以我猜我在这里遗漏了一些东西(可能是网络钩子)。为什么不git push将本地目录中的所有内容复制到服务器上 谢谢 编辑: 我一直在学习本教程: 为什么我们需要一个web钩子

我想使用Git将我的本地Laravel网站部署到我的服务器上。我一直在阅读关于如何做到这一点的教程,但它们都提到编写一些
post-receive
webhook,我对Git非常陌生,但并不完全理解

有人能给我解释一下,为什么对我的
public\uhtml
使用
git push
是不够的?我试过了,但它没有复制我的任何网站文件,所以我猜我在这里遗漏了一些东西(可能是网络钩子)。为什么不
git push
将本地目录中的所有内容复制到服务器上

谢谢

编辑:

我一直在学习本教程:


为什么我们需要一个web钩子让服务器签出我们将更改推送到我的web根目录中的repo?为什么我们不能直接将更改提交给web根用户?

git钩子只是一些可执行文件,可以执行您在bash脚本中编写的任何操作。您可能缺少的是添加一个钩子以移动到您刚刚推送的版本。这只是一个bash脚本,它将调用
git checkout-f
来更新该目录。更多信息

更新


如果你只是不想使用钩子,你可以用另一种方法来实现。您可以创建一个中心存储库,如gitlab或github,然后将更改推送到那里。然后在您的服务器中克隆该项目,而不是将更改推送到服务器,您应该从服务器中提取更改。

git钩子只是一些执行您在bash脚本中编写的任何操作的可执行文件。您可能缺少的是添加一个钩子以移动到您刚刚推送的版本。这只是一个bash脚本,它将调用
git checkout-f
来更新该目录。更多信息

更新


如果你只是不想使用钩子,你可以用另一种方法来实现。您可以创建一个中心存储库,如gitlab或github,然后将更改推送到那里。然后在您的服务器上克隆该项目,而不是将更改推送到服务器上,您应该从服务器上提取更改。

谢谢,我已经更新了我的问题!谢谢,我已经更新了我的问题!谢谢,我现在明白了。您能看到我更新的问题吗?您正在将更改推送到该文件夹,但是,此数据位于背景(.git文件夹)中。您的git文件夹的标题仍在以前的版本中。您将添加一个钩子,告诉git移动到您刚刚推出的最新版本,明白了吗,谢谢。还有一件事,我仍然不明白:为什么把git repo作为我的web根目录,并用git push将更改推送到那里还不够呢?因为git的结构是这样的。当您推送到存储库时,只需将文件的补丁(更改)推送到存储库中,它就会将它们存储在根目录下的
.git
文件夹中。您看到的文件将由这些修补程序构建(这样,您可以在使用较新修补程序的同时签出到以前的版本)。请注意,git会发现您刚刚推送了一个新修补程序,但不知道是否确实要使用此修补程序更新当前文件。因此,它将使您能够得到有关事件的通知,并且您可以使用钩子在发生这些事件时做任何您想做的事情。谢谢,我现在就知道了。您能看到我更新的问题吗?您正在将更改推送到该文件夹,但是,此数据位于背景(.git文件夹)中。您的git文件夹的标题仍在以前的版本中。您将添加一个钩子,告诉git移动到您刚刚推出的最新版本,明白了吗,谢谢。还有一件事,我仍然不明白:为什么把git repo作为我的web根目录,并用git push将更改推送到那里还不够呢?因为git的结构是这样的。当您推送到存储库时,只需将文件的补丁(更改)推送到存储库中,它就会将它们存储在根目录下的
.git
文件夹中。您看到的文件将由这些修补程序构建(这样,您可以在使用较新修补程序的同时签出到以前的版本)。请注意,git会发现您刚刚推送了一个新修补程序,但不知道是否确实要使用此修补程序更新当前文件。因此,它将使您能够得到有关事件的通知,并且您可以使用钩子在发生这些事件时做任何您想做的事情。