响应式全屏网站,三明 网站建设,首次建设网站流程图,本地云搭建wordpress前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。
介绍
要了解 Git 的基本知识以及如何安装#xff0c;请参考介绍教程。
本文将教你如何在部署应用程序时使用 Git。虽然有许多使用 Gi…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。
介绍
要了解 Git 的基本知识以及如何安装请参考介绍教程。
本文将教你如何在部署应用程序时使用 Git。虽然有许多使用 Git 部署应用程序的方法本教程将专注于最直接的方法。我假设你已经知道如何在本地机器上创建和使用存储库。如果不知道请参考此教程。
当你使用 Git 时工作流通常是朝向版本控制。你有一个本地存储库用于工作还有一个远程存储库用于保持一切同步并且可以与团队和不同的机器一起工作。但你也可以使用 Git 将应用程序移动到生产环境。
服务器设置
我们的虚构工作空间
你的服务器实际目录/var/www/domain.com
你的服务器存储库/var/repo/site.git
如果我们想要推送到 site.git同时让所有内容都在 /var/www/domain.com 可用我们应该怎么做呢
创建我们的存储库
从命令行登录到你的 VPS然后输入以下命令
cd /var
mkdir repo cd repo
mkdir site.git cd site.git
git init --bare--bare 表示我们的文件夹将没有源文件只有版本控制。
钩子
Git 存储库有一个名为 ‘hooks’ 的文件夹。该文件夹包含一些示例文件用于可能的操作你可以挂钩并执行你设置的自定义操作。
Git 文档 定义了三种可能的服务器钩子pre-receive、post-receive 和 update。pre-receive 在服务器接收到 push 后立即执行update 类似但它对每个分支执行一次post-receive 在 push 完全完成时执行这是我们感兴趣的。
在我们的存储库中如果你输入
ls你会看到一些文件和文件夹包括 hooks 文件夹。所以让我们进入 hooks 文件夹
cd hooks现在通过输入以下命令创建文件 post-receive
cat post-receive当你执行此命令时会有一行空白表示你输入的所有内容将保存到这个文件中。所以让我们输入
#!/bin/sh
git --work-tree/var/www/domain.WBRcom --git-dir/var/repo/site.git checkout -f完成输入后按下 control-d 保存。为了执行该文件我们需要使用以下命令设置适当的权限
chmod x post-receive你可以在文档中看到git-dir 是存储库的路径。使用 work-tree你可以定义文件实际传输到的不同路径。
post-receive 文件将在每次推送完成时被查看它表示你的文件需要在 /var/www/domain.com 中。
本地机器
让我们创建我们的本地存储库。你应该根据自己的选择更改路径和名称。如果你在 VPS 上只需输入
exit然后创建你的存储库
cd /my/workspace
mkdir project cd project
git init然后我们需要配置存储库的远程路径。告诉 Git 添加一个名为 live 的远程
git remote add live ssh://usermydomain.com/var/WBRrepo/site.git这里应该提供存储库链接而不是实际的 live 文件夹。
假设我们在这个文件夹中有一些很棒的工作准备好了。我们应该执行添加文件和提交消息的常规步骤
git add .
git commit -m My project is ready在 git add 后的点表示你正在将所有文件添加到暂存区。在 git commit 后我们有 -m表示我们将输入一条消息。最后我们将一切都推送到服务器。我们使用了在设置远程时使用的 live 别名。
git push live master这里我们告诉 Git 推送到 live 远程的 master 分支。要了解更多关于分支以及如何使用它的信息你可以阅读此教程。
Beta
如果你不想一次部署所有内容怎么办也许你想先测试一下并有一个 beta 目录。
其中一种方法是创建另一个存储库。让我们再次登录到我们的 VPS 并创建我们的目录
cd /var/www/
mkdir beta创建我们的存储库
cd /var/repo
mkdir beta.git cd beta.git
git init --bare同样我们应该创建 post-receive 文件因为我们想在 beta 目录中看到我们的项目
cd hooks
cat post-receive输入文件内容 sh
#!/bin/sh
git --work-tree/var/www/beta --git-dir/var/repo/beta.git checkout -f当你完成输入后按下‘control-d’保存。为了执行该文件我们需要使用以下命令设置适当的权限
chmod x post-receive让我们回到本地代码库
exit
cd /my/workspace/project现在我们可以设置另一个指向 beta 仓库的远程地址
git remote add beta ssh://usermydomain.com/var/WBRrepo/beta.git有了这个设置我们可以进行两步操作。首先推送到 beta 并进行检查如果一切正常再推送到 live
git add .
git commit -m New version
git push beta master然后
git push live master从服务器上线
也许你有一个团队在同一个项目上工作你希望其他人也能决定何时上线。为了实现这一点我们可以在服务器上将 beta 仓库和 live 仓库进行关联。登录到你的 VPS 并输入以下命令
cd /var/repo/beta.git
git remote add live ../site.git现在你可以在服务器上从 beta 推送到 live
cd /var/repo/beta.git
git push live master恭喜你的 VPS 现在已经设置为使用 Git 进行自动部署